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 elementoAllowedOrigins
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 elementoAllowedMethods
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 elementoAllowedHeaders
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.
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çãoOPTIONS
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çãoOPTIONS
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çãoOPTIONS
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