Lorsque vous accédez à un fichier depuis un navigateur en utilisant un nom de domaine OSS, le fichier se télécharge au lieu de s'afficher en aperçu. Cette rubrique explique les raisons de ce comportement et comment le résoudre.
Description du problème
Lorsque vous accédez à un fichier stocké dans Object Storage Service (OSS) depuis un navigateur en utilisant un nom de domaine OSS, le fichier se télécharge automatiquement au lieu de s'afficher en aperçu.
Causes
Pour les buckets créés après 18 h 00 le 29 septembre 2019, OSS applique une politique de sécurité aux objets accessibles via un nom de domaine OSS. Lorsque le Content-Type de l'objet correspond à l'une des valeurs suivantes, OSS ajoute deux en-têtes de réponse HTTP qui forcent le navigateur à télécharger le fichier plutôt qu'à l'afficher directement :
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
OSS ajoute les en-têtes suivants à la réponse :
x-oss-force-download: true
Content-Disposition: attachment
L'en-tête Content-Disposition: attachment indique au navigateur de traiter la réponse comme un téléchargement de fichier plutôt que de l'afficher directement.
Exemples de problèmes
Par exemple, un bucket a été créé après 18 h 00 le 29 septembre 2019. Il contient un objet nommé apple.jpeg avec un Content-Type défini sur image/jpeg. Lorsque vous utilisez un nom de domaine OSS standard pour accéder à cet objet depuis un navigateur, OSS ajoute les deux en-têtes mentionnés précédemment à la réponse. Un navigateur standard détecte alors l'en-tête Content-Disposition: attachment et lance un téléchargement au lieu d'un aperçu.
GET /apple.jpeg HTTP/1.1
HTTP/1.1 200 OK
Content-Type: image/jpeg
Content-Disposition: attachment
x-oss-force-download: true
Solution
OSS applique la politique de sécurité de téléchargement forcé uniquement aux requêtes effectuées via un nom de domaine OSS. Pour servir des fichiers destinés à un aperçu dans le navigateur, accédez à l'objet via un nom de domaine personnalisé. Pour plus d'informations, consultez Associer un nom de domaine personnalisé.