Testar o CORS - Amazon Simple Storage Service

Testar o CORS

Para testar a configuração de CORS, uma solicitação de CORS preliminar pode ser enviada com o método OPTIONS para que o servidor responda se é aceitável enviar a solicitação. Quando o Amazon S3 recebe uma solicitação preliminar, ele avalia a configuração de CORS para o bucket e usa a primeira regra CORSRule correspondente à solicitação de entrada para permitir uma solicitação entre origens. Para que uma regra seja correspondente, as seguintes condições devem ser satisfeitas:

  • O cabeçalho Origin em uma solicitação do CORS para seu bucket deve corresponder às origens do elemento AllowedOrigins na configuração do CORS.

  • Os métodos HTTP especificados no Access-Control-Request-Method em uma solicitação de CORS para o bucket devem corresponder ao método ou aos métodos listados no elemento AllowedMethods na configuração de CORS.

  • Os cabeçalhos listados no cabeçalho Access-Control-Request-Headers em uma solicitação preliminar devem corresponder aos cabeçalhos no elemento AllowedHeaders na configuração de CORS.

Veja a seguir um exemplo de configuração de CORS. Para criar uma configuração de CORS, consulte Configurar CORS. Para ver mais exemplos de configuração de CORS, consulte Elementos de uma configuração de CORS.

JSON
[ { "AllowedHeaders": [ "Authorization" ], "AllowedMethods": [ "GET" "PUT", "POST", "DELETE" ], "AllowedOrigins": [ "http://www.example1.com" ], "ExposeHeaders": [ "x-amz-meta-custom-header" ] } ]

Para testar a configuração de CORS, é possível enviar uma verificação OPTIONS preliminar usando o comando CURL a seguir. CURL é uma ferramenta de linha de comando que pode ser usada para interagir com o S3. Para ter mais informações, consulte CURL.

curl -v -X OPTIONS \ -H "Origin: http://www.example1.com" \ -H "Access-Control-Request-Method: PUT" \ -H "Access-Control-Request-Headers: Authorization" \ -H "Access-Control-Expose-Headers: x-amz-meta-custom-header"\ "http://bucket_name.s3.amazonaws.com/object_prefix_name"

No exemplo acima, o comando curl -v -x OPTIONS é usado para enviar uma solicitação preliminar ao S3 e perguntar se o S3 tem permissão para enviar uma solicitação PUT em um objeto por meio do http://www.example1.com de origem cruzada. Os cabeçalhos Access-Control-Request-Headers e Access-Control-Expose-Headers são opcionais.

  • Em resposta ao cabeçalho Access-Control-Request-Method na solicitação OPTIONS preliminar, o Amazon S3 exibe a lista de métodos permitidos quando há correspondência com os métodos solicitados.

  • Em resposta ao cabeçalho Access-Control-Request-Headers na solicitação OPTIONS preliminar, o Amazon S3 exibe a lista de cabeçalhos permitidos quando há correspondência com os cabeçalhos solicitados.

  • Em resposta ao cabeçalho Access-Control-Expose-Headers na solicitação OPTIONS preliminar, o Amazon S3 exibe uma lista de cabeçalhos permitidos quando os cabeçalhos solicitados podem ser acessados por scripts em execução no navegador.

nota

Ao enviar uma solicitação preliminar, se algum dos cabeçalhos da solicitação de CORS não for permitido, nenhum dos cabeçalhos de CORS de resposta será exibido.

Em resposta a essa solicitação OPTIONS preliminar, você receberá uma resposta 200 OK. Para conhecer os códigos de erro comuns recebidos ao testar o CORS e ter mais informações para resolver problemas relacionados ao CORS, consulte Solução de problemas do CORS.

< HTTP/1.1 200 OK < Date: Fri, 12 Jul 2024 00:23:51 GMT < Access-Control-Allow-Origin: http://www.example1.com < Access-Control-Allow-Methods: GET, PUT, POST, DELETE < Access-Control-Allow-Headers: Authorization < Access-Control-Expose-Headers: x-amz-meta-custom-header < Access-Control-Allow-Credentials: true < Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method < Server: AmazonS3 < Content-Length: 0