Ao acessar um objeto do OSS pelo navegador, o arquivo pode ser baixado em vez de visualizado diretamente. Use este guia para diagnosticar a causa e configure o comportamento correto de visualização.
Solução de problemas
Se um objeto for baixado em vez de visualizado, execute o curl para inspecionar os cabeçalhos de resposta e identificar a causa.
Objetivo: Verificar se o cabeçalho de resposta contém campos que forçam o download.
Etapas: Execute o seguinte comando no terminal. Substitua <your-object-url> pela URL do seu objeto.
curl -I "<your object URL>"
Análise do resultado: Verifique na resposta a presença dos campos x-oss-force-download e Content-Disposition.
Se o cabeçalho de resposta contiver
x-oss-force-download: true: Uma política de segurança do nome de domínio padrão do OSS foi acionada. Para a solução, consulte Cenário 1: Download forçado devido a uma política de segurança do OSS.Se o cabeçalho de resposta não contiver
x-oss-force-downloadmas contiverContent-Disposition: attachment: Os metadados do objeto estão configurados para baixá-lo como anexo. Para a solução, consulte Cenário 2: Download forçado devido às configurações de metadados do objeto.Se o cabeçalho de resposta não contiver nenhum dos campos anteriores, mas o objeto ainda for baixado: Provavelmente o navegador não reconhece o tipo de arquivo do objeto. Para a solução, consulte Cenário 3: Falha na visualização do objeto pelo navegador devido a Content-Type incorreto.
Soluções
Cenário 1: Download forçado devido a uma política de segurança do OSS
Este cenário ocorre quando o cabeçalho de resposta contém x-oss-force-download: true.
-
Causa: O OSS adiciona os cabeçalhos
x-oss-force-download: trueeContent-Disposition: attachmentpara impedir que certos tipos de arquivo (como HTML) sejam executados nos navegadores. Essa política se aplica ao acessar objetos por meio de um nome de domínio padrão do OSS ou de um endpoint de aceleração em buckets criados após uma data específica.Para mais informações sobre as políticas, consulte Apêndice: Referência rápida das regras de download forçado do OSS no final deste tópico.
Solução: Usar um nome de domínio personalizado para acessar recursos do OSS
-
Procedimento:
Mapeie um domínio personalizado: Faça login no console do OSS. Na página Domain Names do bucket, mapeie seu nome de domínio personalizado que possua registro ICP.
Configure um registro CNAME: No provedor de nomes de domínio, como o Alibaba Cloud DNS, adicione um registro CNAME que aponte seu nome de domínio personalizado para o endereço CNAME fornecido pelo OSS.
Acesse o objeto com o novo domínio: Acesse o objeto pela URL do seu domínio personalizado. O objeto agora será visualizado diretamente.
Para aceleração global, mapeie seu domínio personalizado para um endpoint de aceleração. Isso contorna a política de download forçado e fornece acesso acelerado.
Para instruções detalhadas, consulte Acessar o OSS por meio de um nome de domínio personalizado.
Cenário 2: Download forçado devido às configurações de metadados do objeto
Esse cenário ocorre quando o cabeçalho de resposta contém Content-Disposition: attachment, mas não contém x-oss-force-download.
Causa: O metadado
Content-Dispositiondo objeto está definido comoattachment, o que força o navegador a baixar o objeto em vez de exibi-lo. Se essa configuração não for removida após uso temporário, todas as solicitações subsequentes acionarão um download.-
Solução: Alterar o metadado Content-Disposition do objeto para inline
-
Modificação via console
Faça login no console do OSS e acesse a página Objects na seção Object Management do bucket de destino.
Localize o objeto de destino. Clique em ┇ na coluna Actions e selecione Set Object Metadata.
Na caixa de diálogo exibida, localize o campo Content-Disposition e modifique seu valor para
inline.Clique em OK para salve as configurações.
-
Modificação em lote usando ossutil
# Set the Content-Disposition of a specific object to inline. ossutil set-meta oss://your-bucket/your-object.pdf Content-Disposition:inline
-
Cenário 3: Falha na visualização do objeto pelo navegador devido a Content-Type incorreto
Neste caso, o cabeçalho de resposta está normal, mas o navegador continua baixando o objeto.
Causa: O
Content-Type(tipo MIME) do objeto está ausente ou incorreto. Por exemplo, uma imagem JPG comContent-Typedefinido comoapplication/octet-streamserá baixada porque o navegador não consegue identificar o tipo de arquivo.-
Solução: Definir o Content-Type correto para o objeto
-
Modificação via console
Faça login no console do OSS e acesse a página Objects na seção Object Management do bucket de destino.
Localize o objeto de destino. Clique em ┇ na coluna Actions e selecione Set Object Metadata.
Na caixa de diálogo exibida, localize o campo Content-Type e altere-o para o valor correto.
Clique em OK para salve as configurações.
Exemplos de Content-Type correto para tipos comuns de arquivo:
Imagens:
image/jpeg,image/png,image/gif,image/webpVídeos:
video/mp4Documentos PDF:
application/pdfArquivos HTML:
text/htmlTexto simples:
text/plain
-
Modificação em lote usando ossutil
# Set the Content-Type of a specific object to image/jpeg. ossutil set-meta oss://your-bucket/your-object.jpg Content-Type:image/jpeg
-
Outros casos de uso e soluções
Alterações nos metadados não entram em vigor: Verifique o cache da CDN
Se você usa a CDN para acelerar o acesso ao OSS, alterações de metadados como Content-Type ou Content-Disposition podem não entrar em vigor imediatamente, pois os nós da CDN ainda servem a versão em cache.
Solução: Limpe o cache da CDN para a URL do arquivo modificado no console da CDN. Consulte Atualizar e pré-carregar recursos.
Como forçar o download de um objeto em vez de visualizá-lo?
Para sempre forçar o download quando usuários acessarem um arquivo, use um dos métodos a seguir.
Método 1 (Recomendado): Configurar no OSS. Defina o metadado
Content-Dispositiondo arquivo comoattachment, conforme descrito no Cenário 2. Ideal para configurações permanentes por arquivo.Método 2: Configurar na CDN. Adicione
Content-Disposition: attachmentcomo cabeçalho de resposta de saída em Cache no console da CDN. Isso evita modificar o arquivo de origem e permite configuração em lote por caminho ou tipo de arquivo.
O navegador não suporta o formato de arquivo para visualização
Os navegadores não conseguem visualizar certos formatos profissionais, como .psd, .ai e .sketch. Esses arquivos são baixados independentemente da configuração do OSS e da CDN.
Solução: Instale uma extensão de navegador compatível com o formato ou use um serviço de visualização de documentos, como a Visualização Online do WebOffice.
Apêndice: Referência rápida das regras de download forçado do OSS
Verifique o valor de x-oss-ec no cabeçalho de resposta e use as tabelas a seguir para identificar a regra correspondente.
Código de erro (x-oss-ec): Identifica a regra que acionou o download.
Data de criação do bucket: A política geralmente se aplica apenas a buckets criados após esta data. Buckets legados normalmente não são afetados.
Data de ativação da aceleração de transferência: A política geralmente se aplica apenas a buckets com aceleração de transferência ativada após esta data. Buckets com aceleração de transferência ativada anteriormente normalmente não são afetados.
É possível contornar todas as regras de download forçado usando um nome de domínio personalizado.
Nomes de domínio padrão do OSS
|
Quando a política entra em vigor |
Região |
Recursos afetados |
Tipos de arquivo afetados |
Código de erro |
|
08:00, 28 de setembro de 2018 |
China (Hangzhou), China (Shanghai), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Hohhot), China (Shenzhen), China (Chengdu) |
Buckets criados após a entrada em vigor da política |
text/html |
|
|
12:00, 25 de setembro de 2019 |
China (Nanjing - Região Local - Em Desativação) China (Ulanqab), China (Heyuan), China (Guangzhou), EUA (Silicon Valley), EUA (Virginia), Coreia do Sul (Seoul), Singapura, Malásia (Kuala Lumpur), Indonésia (Jakarta), Filipinas (Manila), Tailândia (Bangkok), Reino Unido (London), EAU (Dubai) |
Buckets criados após a entrada em vigor da política |
text/html |
|
|
14:00, 25 de novembro de 2019 |
China (Hong Kong) |
Buckets criados após a entrada em vigor da política |
text/html |
|
|
17:00, 23 de setembro de 2019 |
China (Hohhot) |
Buckets criados após a entrada em vigor da política |
image/jpeg, image/gif, image/tiff, image/png, image/webp, image/svg+xml, image/bmp, image/x-ms-bmp, image/x-cmu-raster, image/exr, image/x-icon, image/heic, text/html |
|
|
11:00, 24 de setembro de 2019 |
China (Qingdao), China (Chengdu) |
Buckets criados após a entrada em vigor da política |
image/jpeg, image/gif, image/tiff, image/png, image/webp, image/svg+xml, image/bmp, image/x-ms-bmp, image/x-cmu-raster, image/exr, image/x-icon, image/heic, text/html |
|
|
17:00, 24 de setembro de 2019 |
China (Zhangjiakou) |
Buckets criados após a entrada em vigor da política |
image/jpeg, image/gif, image/tiff, image/png, image/webp, image/svg+xml, image/bmp, image/x-ms-bmp, image/x-cmu-raster, image/exr, image/x-icon, image/heic, text/html |
|
|
17:00, 29 de setembro de 2019 |
China (Shanghai), China (Shenzhen) |
Buckets criados após a entrada em vigor da política |
image/jpeg, image/gif, image/tiff, image/png, image/webp, image/svg+xml, image/bmp, image/x-ms-bmp, image/x-cmu-raster, image/exr, image/x-icon, image/heic, text/html |
|
|
18:00, 29 de setembro de 2019 |
China (Beijing) |
Buckets criados após a entrada em vigor da política |
image/jpeg, image/gif, image/tiff, image/png, image/webp, image/svg+xml, image/bmp, image/x-ms-bmp, image/x-cmu-raster, image/exr, image/x-icon, image/heic, text/html |
|
|
15:00, 30 de setembro de 2019 |
China (Hangzhou) |
Buckets criados após a entrada em vigor da política |
image/jpeg, image/gif, image/tiff, image/png, image/webp, image/svg+xml, image/bmp, image/x-ms-bmp, image/x-cmu-raster, image/exr, image/x-icon, image/heic, text/html |
|
|
00:00, 09 de outubro de 2022 |
Buckets criados por usuários que ativaram o OSS pela primeira vez após as 00:00 de 9 de outubro de 2022 |
|||
|
10:00, 22 de dezembro de 2025 |
China (Ulanqab), China (Heyuan), China (Guangzhou), China (Nanjing - Região Local - Em Desativação) |
Buckets criados após a entrada em vigor da política |
image/jpeg, image/gif, image/tiff, image/png, image/webp, image/svg+xml, image/bmp, image/x-ms-bmp, image/x-cmu-raster, image/exr, image/x-icon, image/heic |
Endpoints de aceleração
|
Data de vigência |
Região |
Recursos afetados |
Tipos de arquivo afetados |
Código de erro |
|
00:00, 31 de dezembro de 2020 |
Buckets com aceleração de transferência ativada após a entrada em vigor da política |
text/html |
||
|
12:00, 07 de janeiro de 2021 |
EAU (Dubai) |
Buckets com aceleração de transferência ativada após a entrada em vigor da política |
||
|
18:00, 07 de janeiro de 2021 |
Malásia (Kuala Lumpur), Reino Unido (London) |
Buckets com aceleração de transferência ativada após a entrada em vigor da política |
||
|
18:00, 08 de janeiro de 2021 |
Japão (Tokyo), Indonésia (Jakarta), Alemanha (Frankfurt) |
Buckets com aceleração de transferência ativada após a entrada em vigor da política |
||
|
12:00, 14 de janeiro de 2021 |
EUA (Silicon Valley), EUA (Virginia), Singapura |
Buckets com aceleração de transferência ativada após a entrada em vigor da política |
||
|
00:00, 16 de janeiro de 2021 |
China (Hong Kong) |
Buckets com aceleração de transferência ativada após a entrada em vigor da política |
||
|
00:00, 09 de outubro de 2022 |
Buckets criados por usuários que ativaram o OSS pela primeira vez após as 00:00 de 9 de outubro de 2022 |
|||
|
00:00, 01 de fevereiro de 2023 |
Coreia do Sul (Seoul), Filipinas (Manila), Tailândia (Bangkok) |
Buckets com aceleração de transferência ativada após a entrada em vigor da política |