すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:OSSオブジェクトのブラウザプレビュー動作を設定する方法

最終更新日:Sep 02, 2026

ブラウザ経由で OSS オブジェクトにアクセスすると、インラインプレビューではなくダウンロードされる場合があります。本ガイドを使用して原因を特定し、正しいプレビュー動作を設定してください。

トラブルシューティング

オブジェクトがプレビューされずにダウンロードされる場合は、 curl を実行してレスポンスヘッダーを調べ、原因を特定してください。

目的:レスポンスヘッダーに強制ダウンロードを引き起こすフィールドが含まれているかどうかを確認します。

手順: ターミナルで次のコマンドを実行します。<your-object-url> は、ご自身のオブジェクト URL に置き換えてください。

curl -I "<your object URL>"

結果の分析: レスポンスの x-oss-force-download フィールドと Content-Disposition フィールドを確認します。

ソリューション

シナリオ1:OSSセキュリティポリシーによる強制ダウンロード

このシナリオは、レスポンスヘッダーに x-oss-force-download: true が含まれている場合に発生します。

  • 原因: OSS は、特定のファイルタイプ (HTML など) がブラウザーで実行されるのを防ぐために、 x-oss-force-download: true および Content-Disposition: attachment ヘッダーを追加します。このポリシーは、特定の日付以降に作成されたバケット内のオブジェクトに OSS のデフォルトドメイン名 または アクセラレーションエンドポイント を介してアクセスする場合に適用されます。

    ポリシーの詳細については、「付録:OSS強制ダウンロードルールのクイックリファレンス」をご参照ください。
  • 解決方法:カスタムドメイン名を使用してOSSリソースにアクセスする

  • 手順:

    1. カスタムドメイン名をマッピングする:OSS コンソールにログインします。バケットの ドメイン名 ページで、ICP 登録済みのカスタムドメイン名をマッピングします。

    2. CNAME レコードを設定する:Alibaba Cloud DNS などのドメイン名プロバイダーで、カスタムドメイン名を OSS が提供する CNAME アドレスにポイントする CNAME レコードを追加します。

    3. 新しいドメイン名でオブジェクトにアクセスする:カスタムドメイン名の URL を使用してオブジェクトにアクセスします。オブジェクトがインラインでプレビューされるようになります。

説明
  • グローバルアクセラレーションの場合は、カスタムドメイン名をアクセラレーションエンドポイントにマッピングします。これにより、強制ダウンロードポリシーを回避しながら、高速アクセスを提供できます。

  • 詳細な手順については、「カスタムドメイン名を使用したOSSへのアクセス」をご参照ください。

シナリオ2:オブジェクトメタデータ設定による強制ダウンロード

このシナリオは、レスポンスヘッダーに Content-Disposition: attachment が含まれ、 x-oss-force-download が含まれない場合に発生します。

  • 原因: オブジェクトの Content-Disposition メタデータが attachment に設定されているため、ブラウザはオブジェクトを表示するのではなくダウンロードを強制されます。この設定が一時的な使用の後にクリアされない場合、後続のすべてのリクエストでダウンロードがトリガーされます。

  • 解決方法:オブジェクトの Content-Disposition メタデータを inline に変更する

    • コンソールで変更する

      1. OSSコンソールにログインし、対象バケットの オブジェクト管理 セクションにある オブジェクト ページに移動します。

      2. 対象のオブジェクトを見つけます。[操作] 列の [┇] アイコンをクリックし、[オブジェクトメタデータの設定]を選択します。

      3. 表示されるダイアログボックスで、Content-Disposition フィールドを探し、その値を inline に変更します。

      4. [OK] をクリックして設定を保存します。

    • ossutil を使用して一括変更する

      # 特定のオブジェクトの Content-Disposition を inline に設定します。
      ossutil set-props oss://your-bucket/your-object.pdf --content-disposition inline --metadata-directive update

シナリオ3:誤ったContent-Typeによるプレビューの失敗

このシナリオは、レスポンスヘッダーが正常であるにもかかわらず、ブラウザがオブジェクトをダウンロードする場合に発生します。

  • 原因: オブジェクトの Content-Type (MIME タイプ) が欠落しているか、正しくないためです。例えば、Content-Type が application/octet-stream に設定された JPG 画像は、ブラウザがファイルタイプを識別できないためダウンロードされます。

  • 解決方法:オブジェクトに正しい Content-Type を設定する

    • コンソールで変更する

      1. OSSコンソールにログインし、対象バケットの オブジェクト管理 セクションにある オブジェクト ページに移動します。

      2. 対象のオブジェクトを見つけます。[┇] アイコンを[操作] 列でクリックし、[オブジェクトメタデータの設定] を選択します。

      3. 表示されるダイアログボックスで、Content-Type フィールドを見つけ、正しい値に変更します。

      4. [OK] をクリックして設定を保存します。

      一般的なファイルタイプの正しい Content-Type の例:

      • 画像: image/jpeg, image/png, image/gif, image/webp

      • 動画: video/mp4

      • PDF ドキュメント:application/pdf

      • HTML ファイル: text/html

      • プレーンテキスト: text/plain

    • ossutil を使用して一括変更する

      # 特定のオブジェクトの Content-Type を image/jpeg に設定します。
      ossutil set-props oss://your-bucket/your-object.jpg --content-type image/jpeg --metadata-directive update
    • 変更方法: CopyObject SDK

      CopyObject を使用してオブジェクトをコピーする場合、デフォルトで COPY メタデータディレクティブが使用されます。このディレクティブは、コピー元オブジェクトのメタデータをコピー先オブジェクトにそのままコピーし、コピー先オブジェクトのファイル名の拡張子に基づいて Content-Type を自動的に推測または更新しません。この場合、リクエストで x-oss-metadata-directive を REPLACE に設定せずに Content-Type のみを指定した場合、その設定は有効にならず、コピー先オブジェクトはコピー元オブジェクトの Content-Type を保持します。

      x-oss-metadata-directive の有効な値:

      • COPY (デフォルト): ソースオブジェクトのメタデータをコピーし、リクエストで指定された Content-Type などのメタデータは無視します。

      • REPLACE は、ソースオブジェクトのメタデータをリクエストで指定されたメタデータに置き換えます。

      CopyObject を呼び出す際、宛先オブジェクトの Content-Type を指定の値に更新するには、Content-Type と x-oss-metadata-directive: REPLACE の両方を指定する必要があります。 次のサンプルコードでは、Python SDK を使用します。

      import oss2
      
      # バケットを初期化します。
      auth = oss2.Auth('<your-access-key-id>', '<your-access-key-secret>')
      bucket = oss2.Bucket(auth, '<your-endpoint>', '<your-bucket-name>')
      
      # オブジェクトをコピーする際に Content-Type を設定し、メタデータディレクティブを REPLACE に設定します。
      headers = {
          "Content-Type": "image/jpeg",
          "x-oss-metadata-directive": "REPLACE"
      }
      bucket.copy_object('<source-bucket-name>', 'source-object.png', 'target-object.jpg', headers=headers)

      別の方法として、update_object_meta メソッドを使用して既存のオブジェクトの Content-Type を直接更新するか、put_object を使用してオブジェクトをアップロードするときに Content-Type を指定することもできます。

シナリオ4:HTTPSを強制するバケットポリシーによるプレビューの失敗

このシナリオは、HTTP 経由のリクエストで、メッセージ Access denied by bucket policy. を含む 403 AccessDenied エラーが返される場合に発生します。オブジェクトはプレビューもダウンロードもされず、HTTPS 経由でリクエストすると、同じオブジェクトが期待どおりに返されます。

  • 原因: バケットのバケットポリシーに acs:SecureTransport 条件が含まれているため、HTTPS 経由で送信されないリクエストは拒否されます。オブジェクト URL への HTTP リクエストは、オブジェクトが返される前にバケットポリシーによって拒否されるため、ブラウザでプレビューするものがありません。カスタムドメイン名を使用するリクエストは、OSS のデフォルトドメイン名を使用するリクエストと同じバケットポリシーの対象となります。

  • 原因の確認:

    1. OSS コンソールにログインします。対象のバケットをクリックし、左側のナビゲーションペインで[アクセス制御] > [バケットポリシー]をクリックします

    2. ポリシーリストに、条件 がアクセス方法を HTTP に制限し、効果 が 拒否 であるポリシーが含まれているかどうかを確認します。

    3. または、コマンドラインからバケットポリシーを照会します。

      aliyun ossutil api get-bucket-policy --bucket <bucket-name>
  • 解決策 1 (推奨): HTTPS 経由でオブジェクトにアクセスする。 オブジェクト URL の http:// を https:// に置き換え、オブジェクトを再度リクエストします。 これにより、オブジェクトがブラウザーでプレビューされ、バケットは引き続き HTTP リクエストを拒否します。

  • 解決策 2: バケットポリシーの変更。 業務上 HTTP アクセスが必要な場合は、左側のナビゲーションペインで [アクセス制御] > [バケットポリシー] をクリックし、acs:SecureTransport 条件を含むポリシーを削除または変更します。 HTTP リクエストを許可すると、データがプレーンテキストで送信されるため、送信セキュリティが低下します。 ポリシーを変更する前に、影響を評価してください。

その他のユースケースと解決方法

メタデータの変更が反映されない:CDNキャッシュを確認する

CDN を使用して OSS へのアクセスを高速化する場合、CDN ノードがキャッシュされたバージョンを配信し続けるため、Content-Type や Content-Disposition などのメタデータの変更がすぐに有効にならない場合があります。

解決方法:CDN コンソールで、変更されたファイルの URL の CDN キャッシュをパージします。「リソースの更新とプリフェッチ」をご参照ください。

オブジェクトをプレビューではなく強制的にダウンロードさせる方法

ユーザーがファイルにアクセスした際に常にダウンロードを強制するには、次のいずれかの方法を使用します。

  • 方法 1 (推奨): OSS での設定。 「シナリオ 2」で説明されているように、ファイルの Content-Disposition メタデータを attachment に設定します。 永続的なファイルごとの設定に最適です。

  • 方法 2: CDN での設定。 CDN コンソールの [キャッシュ] で、送信レスポンスヘッダーとして Content-Disposition: attachment を追加します。これにより、ソースファイルの変更が不要になり、パスまたはファイルタイプによる一括設定もサポートされます。

プレビューに非対応のファイル形式

ブラウザでは、.psd、.ai、.sketch のような特定のプロフェッショナルなフォーマットをプレビューできません。これらのファイルは、OSS と CDN の設定に関係なくダウンロードされます。

解決方法:該当形式のブラウザ拡張機能をインストールするか、WebOffice Online Preview などのドキュメントプレビューサービスを使用します。

付録: OSS 強制ダウンロードルールのクイックリファレンス

レスポンスヘッダーの x-oss-ec の値を確認し、以下の表を使用して一致するルールを特定します。

  • エラーコード (x-oss-ec):ダウンロードをトリガーしたルールを識別します。

  • バケット作成時刻:ポリシーは通常、この時刻以降に作成されたバケットにのみ適用されます。従来のバケットは通常影響を受けません。

  • 転送アクセラレーション有効化時刻:ポリシーは通常、この時刻以降に転送アクセラレーションが有効化されたバケットにのみ適用されます。それ以前に転送アクセラレーションが有効化されたバケットは通常影響を受けません。

カスタムドメイン名を使用すると、すべての強制ダウンロードルールを回避できます。

OSSデフォルトドメイン名

ポリシーの発効時刻

リージョン

影響を受けるリソース

影響を受けるファイルタイプ

エラーコード

2018年9月28日 08:00

China (Hangzhou)、China (Shanghai)、China (Qingdao)、China (Beijing)、China (Zhangjiakou)、China (Hohhot)、China (Shenzhen)、China (Chengdu)

ポリシー発効後に作成されたバケット

text/html

0048-00000001

2019年9月25日 12:00

China (Nanjing - Local Region - Phasing Out)China (Ulanqab)、China (Heyuan)、China (Guangzhou)、US (Silicon Valley)、US (Virginia)、South Korea (Seoul)、Singapore、Malaysia (Kuala Lumpur)、Indonesia (Jakarta)、Philippines (Manila)、Thailand (Bangkok)、UK (London)、UAE (Dubai)

ポリシー発効後に作成されたバケット

text/html

0048-00000001

2019年11月25日 14:00

China (Hong Kong)

ポリシー発効後に作成されたバケット

text/html

0048-00000001

2019年9月23日 17:00

China (Hohhot)

ポリシー発効後に作成されたバケット

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

2019年9月24日 11:00

China (Qingdao)、China (Chengdu)

ポリシー発効後に作成されたバケット

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

2019年9月24日 17:00

China (Zhangjiakou)

ポリシー発効後に作成されたバケット

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

2019年9月29日 17:00

China (Shanghai)、China (Shenzhen)

ポリシー発効後に作成されたバケット

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

2019年9月29日 18:00

China (Beijing)

ポリシー発効後に作成されたバケット

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

2019年9月30日 15:00

China (Hangzhou)

ポリシー発効後に作成されたバケット

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

2022年10月9日 00:00

全リージョン

2022年10月9日 00:00以降に初めてOSSを有効化したユーザーによって作成されたバケット

すべて

0048-00000113

2025年12月22日 10:00

China (Ulanqab)、China (Heyuan)、China (Guangzhou)、China (Nanjing - Local Region - Phasing Out)

ポリシー発効後に作成されたバケット

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

アクセラレーションエンドポイント

発効時刻

リージョン

影響を受けるリソース

影響を受けるファイルタイプ

エラーコード

2020年12月31日 00:00

全リージョン

ポリシー発効後に転送アクセラレーションが有効化されたバケット

text/html

0048-00000002

2021年1月7日 12:00

UAE (Dubai)

ポリシー発効後に転送アクセラレーションが有効化されたバケット

すべて

0048-00000107

2021年1月7日 18:00

Malaysia (Kuala Lumpur)、UK (London)

ポリシー発効後に転送アクセラレーションが有効化されたバケット

すべて

0048-00000108

2021年1月8日 18:00

Japan (Tokyo)、Indonesia (Jakarta)、Germany (Frankfurt)

ポリシー発効後に転送アクセラレーションが有効化されたバケット

すべて

0048-00000109

2021年1月14日 12:00

US (Silicon Valley)、US (Virginia)、Singapore

ポリシー発効後に転送アクセラレーションが有効化されたバケット

すべて

0048-00000110

2021年1月16日 00:00

China (Hong Kong)

ポリシー発効後に転送アクセラレーションが有効化されたバケット

すべて

0048-00000111

2022年10月9日 00:00

全リージョン

2022年10月9日 00:00以降に初めてOSSを有効化したユーザーによって作成されたバケット

すべて

0048-00000113

2023年2月1日 00:00

South Korea (Seoul)、Philippines (Manila)、Thailand (Bangkok)

ポリシー発効後に転送アクセラレーションが有効化されたバケット

すべて

0048-00000112