Tous les produits
Search
Centre de documentation

Object Storage Service:Comment configurer le comportement de prévisualisation du navigateur pour les objets OSS ?

Dernière mise à jour :Sep 02, 2026

Lorsque vous accédez à un objet OSS via un navigateur, il peut se télécharger au lieu de s'afficher en ligne. Utilisez ce guide pour diagnostiquer la cause et configurer le comportement de prévisualisation approprié.

Dépannage

Si un objet se télécharge au lieu de s'afficher, exécutez curl pour inspecter les en-têtes de réponse et identifier la cause.

Objectif : Vérifier si l'en-tête de réponse contient des champs qui forcent le téléchargement.

Étapes : Exécutez la commande suivante dans votre terminal. Remplacez <your-object-url> par l'URL de votre objet.

curl -I "<your object URL>"

Analyse des résultats : Vérifiez la présence des champs x-oss-force-download et Content-Disposition dans la réponse.

Solutions

Scénario 1 : Téléchargement forcé dû à une politique de sécurité OSS

Ce scénario se produit lorsque l'en-tête de réponse contient x-oss-force-download: true.

  • Cause : OSS ajoute les en-têtes x-oss-force-download: true et Content-Disposition: attachment pour empêcher l'exécution de certains types de fichiers (tels que HTML) dans les navigateurs. Cette politique s'applique lorsque vous accédez aux objets via un nom de domaine par défaut OSS ou un endpoint d'accélération dans des buckets créés après une date spécifique.

    Pour plus d'informations sur les politiques, consultez Annexe : Référence rapide des règles de téléchargement forcé OSS à la fin de cette rubrique.
  • Solution : Utiliser un nom de domaine personnalisé pour accéder aux ressources OSS

  • Procédure :

    1. Associer un domaine personnalisé : Connectez-vous à la console OSS. Sur la page Domain Names du bucket, associez votre nom de domaine personnalisé disposant d'un备案 ICP.

    2. Configurer un enregistrement CNAME : Chez votre fournisseur de noms de domaine, tel qu'Alibaba Cloud DNS, ajoutez un enregistrement CNAME qui pointe votre nom de domaine personnalisé vers l'adresse CNAME fournie par OSS.

    3. Accéder à l'objet avec le nouveau domaine : Accédez à l'objet via l'URL de votre domaine personnalisé. L'objet s'affiche désormais en ligne.

Remarque
  • Pour l'accélération globale, associez votre domaine personnalisé à un endpoint d'accélération. Cela contourne la politique de téléchargement forcé tout en fournissant un accès accéléré.

  • Pour des instructions détaillées, consultez Accéder à OSS via un nom de domaine personnalisé.

Scénario 2 : Téléchargement forcé dû aux paramètres des métadonnées de l'objet

Ce scénario se produit lorsque l'en-tête de réponse contient Content-Disposition: attachment mais pas x-oss-force-download.

  • Cause : Les métadonnées Content-Disposition de l'objet sont définies sur attachment, ce qui force le navigateur à télécharger l'objet plutôt qu'à l'afficher. Si ce paramètre n'est pas effacé après une utilisation temporaire, toutes les requêtes suivantes déclenchent un téléchargement.

  • Solution : Modifier les métadonnées Content-Disposition de l'objet en inline

    • Modifier via la console

      1. Connectez-vous à la console OSS et accédez à la page Objects dans la section Object Management du bucket cible.

      2. Recherchez l'objet cible. Cliquez sur l'icône ┇ dans la colonne Actions et sélectionnez Set Object Metadata.

      3. Dans la boîte de dialogue qui s'affiche, recherchez le champ Content-Disposition et modifiez sa valeur en inline.

      4. Cliquez sur OK pour enregistrer les paramètres.

    • Modifier par lots à l'aide d'ossutil

      # Set the Content-Disposition of a specific object to inline.
      ossutil set-props oss://your-bucket/your-object.pdf --content-disposition inline --metadata-directive update

Scénario 3 : Échec de la prévisualisation de l'objet par le navigateur en raison d'un Content-Type incorrect

Ce scénario se produit lorsque l'en-tête de réponse est normal, mais que le navigateur télécharge toujours l'objet.

  • Cause : Le Content-Type (type MIME) de l'objet est manquant ou incorrect. Par exemple, une image JPG avec un Content-Type défini sur application/octet-stream se télécharge car le navigateur ne peut pas identifier le type de fichier.

  • Solution : Définir le Content-Type correct pour l'objet

    • Modifier via la console

      1. Connectez-vous à la console OSS et accédez à la page Objects dans la section Object Management du bucket cible.

      2. Recherchez l'objet cible. Cliquez sur l'icône ┇ dans la colonne Actions et sélectionnez Set Object Metadata.

      3. Dans la boîte de dialogue qui s'affiche, recherchez le champ Content-Type et modifiez-le pour lui attribuer la valeur correcte.

      4. Cliquez sur OK pour enregistrer les paramètres.

      Exemples de Content-Type corrects pour les types de fichiers courants :

      • Images : image/jpeg, image/png, image/gif, image/webp

      • Vidéos : video/mp4

      • Documents PDF : application/pdf

      • Fichiers HTML : text/html

      • Texte brut : text/plain

    • Modifier par lots à l'aide d'ossutil

      # Set the Content-Type of a specific object to image/jpeg.
      ossutil set-props oss://your-bucket/your-object.jpg --content-type image/jpeg --metadata-directive update
    • Modifier à l'aide du SDK CopyObject**

      Lorsque vous utilisez CopyObject pour copier un objet, la directive de métadonnées COPY est utilisée par défaut. Cette directive copie les métadonnées de l'objet source vers l'objet de destination telles quelles et ne déduit ni ne met automatiquement à jour le Content-Type en fonction de l'extension de fichier de l'objet de destination. Dans ce cas, si vous spécifiez uniquement Content-Type dans la requête sans définir x-oss-metadata-directive sur REPLACE, le paramètre ne prend pas effet et l'objet de destination conserve le Content-Type de l'objet source.

      Valeurs valides de x-oss-metadata-directive :

      • COPY (par défaut) : copie les métadonnées de l'objet source et ignore les métadonnées telles que Content-Type spécifiées dans la requête.

      • REPLACE : remplace les métadonnées de l'objet source par les métadonnées spécifiées dans la requête.

      Lorsque vous appelez CopyObject, vous devez spécifier à la fois Content-Type et x-oss-metadata-directive: REPLACE pour mettre à jour le Content-Type de l'objet de destination avec la valeur spécifiée. L'exemple de code suivant utilise le SDK Python :

      import oss2
      
      # Initialize the bucket.
      auth = oss2.Auth('<your-access-key-id>', '<your-access-key-secret>')
      bucket = oss2.Bucket(auth, '<your-endpoint>', '<your-bucket-name>')
      
      # Set Content-Type and set the metadata directive to REPLACE when you copy an object.
      headers = {
          "Content-Type": "image/jpeg",
          "x-oss-metadata-directive": "REPLACE"
      }
      bucket.copy_object('<source-bucket-name>', 'source-object.png', 'target-object.jpg', headers=headers)

      Vous pouvez également utiliser la méthode update_object_meta pour mettre directement à jour le Content-Type d'un objet existant, ou spécifier Content-Type lors du chargement d'un objet à l'aide de put_object.

Scénario 4 : Échec de la prévisualisation car une politique de bucket impose HTTPS

Ce scénario se produit lorsqu'une requête HTTP renvoie l'erreur 403 AccessDenied avec le message Access denied by bucket policy.. L'objet n'est ni prévisualisé ni téléchargé, et le même objet est renvoyé comme prévu lorsque vous le demandez via HTTPS.

  • Cause : La politique de bucket du bucket contient la condition acs:SecureTransport, qui refuse les requêtes non envoyées via HTTPS. Une requête HTTP pour l'URL de l'objet est rejetée par la politique de bucket avant que l'objet ne soit renvoyé, de sorte que le navigateur n'a rien à prévisualiser. Les requêtes utilisant un nom de domaine personnalisé sont soumises à la même politique de bucket que les requêtes utilisant le nom de domaine par défaut OSS.

  • Confirmer la cause :

    1. Connectez-vous à la console OSS . Cliquez sur le bucket cible. Dans le volet de navigation de gauche, cliquez sur Access Control > Bucket Policy

    2. Vérifiez si la liste des politiques contient une politique dont la Condition limite la méthode d'accès à HTTP et dont l'Effect est Deny.

    3. Vous pouvez également interroger la politique de bucket depuis la ligne de commande :

      aliyun ossutil api get-bucket-policy --bucket <bucket-name>
  • Solution 1 (recommandée) : Accéder à l'objet via HTTPS. Remplacez http:// par https:// dans l'URL de l'objet et effectuez à nouveau la requête. L'objet s'affiche alors dans le navigateur, et le bucket continue de refuser les requêtes HTTP.

  • Solution 2 : Modifier la politique de bucket. Si votre activité nécessite un accès HTTP, dans le volet de navigation de gauche, cliquez sur Access Control > Bucket Policy, supprimez ou modifiez la politique contenant la condition acs:SecureTransport. Autoriser les requêtes HTTP signifie que les données sont transmises en texte clair, ce qui réduit la sécurité de la transmission. Évaluez l'impact avant de modifier la politique.

Autres cas d'utilisation et solutions

Les modifications des métadonnées ne prennent pas effet : Vérifier le cache CDN

Si vous utilisez CDN pour accélérer l'accès à OSS, les modifications des métadonnées telles que Content-Type ou Content-Disposition peuvent ne pas prendre effet immédiatement car les nœuds CDN servent toujours la version mise en cache.

Solution : Purgez le cache CDN pour l'URL du fichier modifié dans la console CDN. Actualiser et précharger les ressources.

Comment forcer le téléchargement d'un objet au lieu de sa prévisualisation ?

Pour toujours forcer le téléchargement lorsque les utilisateurs accèdent à un fichier, utilisez l'une des méthodes suivantes.

  • Méthode 1 (recommandée) : Configurer dans OSS. Définissez les métadonnées Content-Disposition du fichier sur attachment comme décrit dans Scénario 2. Idéal pour les paramètres permanents par fichier.

  • Méthode 2 : Configurer dans CDN. Ajoutez Content-Disposition: attachment en tant qu'en-tête de réponse sortant sous Cache dans la console CDN. Cela évite de modifier le fichier source et prend en charge la configuration par lot par chemin ou type de fichier.

Le navigateur ne prend pas en charge le format de fichier pour la prévisualisation

Les navigateurs ne peuvent pas prévisualiser certains formats professionnels tels que .psd, .ai et .sketch. Ces fichiers se téléchargent quelle que soit la configuration OSS et CDN.

Solution : Installez une extension de navigateur pour le format, ou utilisez un service de prévisualisation de documents tel que WebOffice Online Preview.

Annexe : Référence rapide des règles de téléchargement forcé OSS

Vérifiez la valeur x-oss-ec dans l'en-tête de réponse, puis utilisez les tableaux suivants pour identifier la règle correspondante.

  • Code d'erreur (x-oss-ec) : Identifie la règle qui a déclenché le téléchargement.

  • Heure de création du bucket : La politique s'applique généralement uniquement aux buckets créés après cette heure. Les buckets hérités ne sont généralement pas affectés.

  • Heure d'activation de l'accélération de transfert : La politique s'applique généralement uniquement aux buckets pour lesquels l'accélération de transfert a été activée après cette heure. Les buckets pour lesquels l'accélération de transfert a été activée plus tôt ne sont généralement pas affectés.

Vous pouvez contourner toutes les règles de téléchargement forcé en utilisant un nom de domaine personnalisé.

Noms de domaine par défaut OSS

Date d'entrée en vigueur de la politique

Région

Ressources concernées

Types de fichiers concernés

Code d'erreur

28 septembre 2018 à 08:00

Chine (Hangzhou), Chine (Shanghai), Chine (Qingdao), Chine (Pékin), Chine (Zhangjiakou), Chine (Hohhot), Chine (Shenzhen), Chine (Chengdu)

Buckets créés après l'entrée en vigueur de la politique

text/html

0048-00000001

25 septembre 2019 à 12:00

Chine (Nanjing - Région locale - En cours de suppression) Chine (Ulanqab), Chine (Heyuan), Chine (Guangzhou), États-Unis (Silicon Valley), États-Unis (Virginie), Corée du Sud (Séoul), Singapour, Malaisie (Kuala Lumpur), Indonésie (Jakarta), Philippines (Manille), Thaïlande (Bangkok), Royaume-Uni (Londres), Émirats arabes unis (Dubaï)

Buckets créés après l'entrée en vigueur de la politique

text/html

0048-00000001

25 novembre 2019 à 14:00

Chine (Hong Kong)

Buckets créés après l'entrée en vigueur de la politique

text/html

0048-00000001

23 septembre 2019 à 17:00

Chine (Hohhot)

Buckets créés après l'entrée en vigueur de la politique

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

0048-00000100

24 septembre 2019 à 11:00

Chine (Qingdao), Chine (Chengdu)

Buckets créés après l'entrée en vigueur de la politique

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

0048-00000101

24 septembre 2019 à 17:00

Chine (Zhangjiakou)

Buckets créés après l'entrée en vigueur de la politique

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

0048-00000102

29 septembre 2019 à 17:00

Chine (Shanghai), Chine (Shenzhen)

Buckets créés après l'entrée en vigueur de la politique

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

0048-00000103

29 septembre 2019 à 18:00

Chine (Pékin)

Buckets créés après l'entrée en vigueur de la politique

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

0048-00000104

30 septembre 2019 à 15:00

Chine (Hangzhou)

Buckets créés après l'entrée en vigueur de la politique

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

0048-00000105

9 octobre 2022 à 00:00

Toutes les régions

Buckets créés par des utilisateurs ayant activé OSS pour la première fois après le 9 octobre 2022 à 00:00

Tous

0048-00000113

22 décembre 2025 à 10:00

Chine (Ulanqab), Chine (Heyuan), Chine (Guangzhou), Chine (Nanjing - Région locale - En cours de suppression)

Buckets créés après l'entrée en vigueur de la politique

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

0048-00000114

Endpoints d'accélération

Date d'entrée en vigueur

Région

Ressources concernées

Types de fichiers concernés

Code d'erreur

31 décembre 2020 à 00:00

Toutes les régions

Buckets pour lesquels l'accélération de transfert a été activée après l'entrée en vigueur de la politique

text/html

0048-00000002

7 janvier 2021 à 12:00

Émirats arabes unis (Dubaï)

Buckets pour lesquels l'accélération de transfert a été activée après l'entrée en vigueur de la politique

Tous

0048-00000107

7 janvier 2021 à 18:00

Malaisie (Kuala Lumpur), Royaume-Uni (Londres)

Buckets pour lesquels l'accélération de transfert a été activée après l'entrée en vigueur de la politique

Tous

0048-00000108

8 janvier 2021 à 18:00

Japon (Tokyo), Indonésie (Jakarta), Allemagne (Francfort)

Buckets pour lesquels l'accélération de transfert a été activée après l'entrée en vigueur de la politique

Tous

0048-00000109

14 janvier 2021 à 12:00

États-Unis (Silicon Valley), États-Unis (Virginie), Singapour

Buckets pour lesquels l'accélération de transfert a été activée après l'entrée en vigueur de la politique

Tous

0048-00000110

16 janvier 2021 à 00:00

Chine (Hong Kong)

Buckets pour lesquels l'accélération de transfert a été activée après l'entrée en vigueur de la politique

Tous

0048-00000111

9 octobre 2022 à 00:00

Toutes les régions

Buckets créés par des utilisateurs ayant activé OSS pour la première fois après le 9 octobre 2022 à 00:00

Tous

0048-00000113

1er février 2023 à 00:00

Corée du Sud (Séoul), Philippines (Manille), Thaïlande (Bangkok)

Buckets pour lesquels l'accélération de transfert a été activée après l'entrée en vigueur de la politique

Tous

0048-00000112