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

Object Storage Service:カスタムドメイン名による OSS へのアクセス

最終更新日:Dec 26, 2025

Object Storage Service (OSS) のバケットドメイン名を使用して HTML ドキュメントや画像などのオブジェクトにアクセスすると、ブラウザは表示する代わりにダウンロードを強制するため、エクスペリエンスが低下する可能性があります。カスタムドメイン名をバケットにマッピングすると、オブジェクトに直接アクセスできるようになり、オンラインプレビューやより柔軟なアクセス制御が可能になります。

重要
  • 2025年3月20日 00:00:00 (UTC+08:00) 以降、新規の OSS ユーザーは、デフォルトのパブリックエンドポイント (例:oss-cn-hangzhou.aliyuncs.com) を介して中国本土リージョンのバケットのデータ API にアクセスすることがブロックされます。このようなリクエストは PublicEndpointForbidden エラー (HTTP 400, EC 0048-00000401) で拒否されます。これらの API へのパブリックアクセスを維持するには、カスタムドメインを使用する必要があります。詳細については、OSS 更新通知をご参照ください。

  • カスタムドメイン名をマッピングする前に、登録済みのドメイン名があること、または新しいドメイン名を登録していることを確認してください。バケットが中国本土にある場合、マッピングされるドメイン名には ICP 登録が必要です。

仕組み

カスタムドメイン名とバケットのマッピングは、CNAME (Canonical Name) レコードを使用して機能します。このレコードは、カスタムドメイン名をバケットのエンドポイントにマッピングします。ユーザーがカスタムドメイン名にアクセスすると、DNS システムが CNAME レコードを解決し、リクエストをバケットのエンドポイントに転送して、OSS リソースへの直接アクセスを提供します。

ビジネスニーズに基づいて、カスタムドメイン名をマッピングするための適切な方法を選択してください:

ドメイン名をパブリックエンドポイントにマッピングする

Web サイトの画像やスクリプトなどの静的ファイルをホストするには、ドメインをパブリックエンドポイントにマッピングして、基本的なファイルアクセスとオンラインプレビューを有効にします。

ステップ 1:ドメインをバケットにマッピングする

  1. バケットページに移動し、対象のバケット名をクリックし、左側のナビゲーションウィンドウで [バケット設定] > [ドメイン] をクリックします。

  2. [カスタムドメイン名のマッピング] をクリックし、マッピングするドメイン (例:oss-example.cn) を入力します。システムは、ドメインがマッピング要件を満たしているかを自動的にチェックします。

    image

  3. チェックに合格したら、ドメインをバケットにマッピングします。

    直接マッピング

    ドメインが現在ご利用の Alibaba Cloud アカウントに属している場合は、直接マッピングします。[確認] をクリックして、ドメインをバケットにマッピングします。

    image

    ドメインの所有権を検証してマッピングする

    ドメインが別の Alibaba Cloud アカウントに属しているか、別の DNS プロバイダーによって管理されている場合は、マッピングする前にまずドメインの所有権を検証する必要があります。以下の手順は、別の Alibaba Cloud アカウントに属するドメインの所有権を検証し、マッピングするまでの全プロセスを示しています。

    1. ドメインを所有するアカウントで Alibaba Cloud DNS コンソールにログインします。対象ドメインの [操作] 列で、[設定] をクリックします。

    2. [レコードの追加] をクリックします。以下のようにレコード情報を入力し、他の設定はデフォルト値のままにします。

      • [レコードタイプ][TXT] を選択します。

      • [ホスト名]: OSS コンソールに表示されるホスト名 (例:_dnsauth) を入力します。サブドメイン (例:image.oss-example.cn) をマッピングする場合は、ホスト名にサブドメインのプレフィックスを追加します。例:_dnsauth.image

      • [レコード値]: OSS コンソールに表示されるレコード値 (例:21a0****************************) を入力します。

    3. [OK] をクリックします。表示される [リソースレコード変更の確認] ダイアログボックスで、再度 [OK] をクリックします。

    4. OSS コンソールに戻り、[ドメイン所有権の検証] をクリックします。これにより、ドメインがバケットにマッピングされます。DNS レコードが有効になるまでには時間がかかる場合があります。エラーが表示された場合は、数分待ってから再度試してください。

    説明

    TXT レコードはドメインの所有権の検証にのみ使用できます。検証が成功した後は削除してください。その後の使用には影響しません。

ステップ 2:CNAME レコードをパブリックエンドポイントに向けるように設定する

ドメインをバケットにマッピングした後、カスタムドメインはまだアクティブではありません。CNAME ドメイン名 (推奨) またはパブリックエンドポイントにカスタムドメインを向ける CNAME レコードを設定して、アクティブにする必要があります。

重要

OSS がカスタムドメインからのリクエストを正しくルーティングするためには、CNAME レコードを CNAME ドメイン名 (推奨) またはパブリックエンドポイントに向ける前に、コンソールでカスタムドメイン名を対象のバケットにマッピングする必要があります。このマッピングがないと、ドメインからの受信リクエストは意図したバケットに解決できず、予期しないコンテンツが提供される可能性があります。

逆に、ドメインマッピングが削除された場合は、ルーティングエラーを防ぐために、対応する CNAME レコードも速やかに削除する必要があります。

自動設定

ドメインが現在ご利用の Alibaba Cloud アカウントに属している場合は、ドメインをマッピングした後、コンソールで [CNAME レコードを自動的に追加] を有効にします。システムは Alibaba Cloud DNS にドメインの CNAME レコードを自動的に追加します。

説明

同じホスト名を持つレコードが既に存在するため CNAME レコードを自動的に追加できないというメッセージが表示された場合、このドメインに対して以前に CNAME レコードが作成されたことを意味します。Alibaba Cloud DNS コンソールにログインして、CNAME レコードがまだ使用中かどうかを確認してください。使用されていない場合は削除し、正しい CNAME レコードを追加してください。

image

手動設定

ドメインに CNAME レコードが既に存在する場合、またはドメインが別の Alibaba Cloud アカウントまたは DNS プロバイダーに属している場合は、ご利用の DNS プロバイダーで CNAME レコードを設定する必要があります。以下の手順は、Alibaba Cloud DNS を使用して CNAME レコードを設定する方法を示しています。

  1. バケットページに移動し、対象のバケット名をクリックし、左側のナビゲーションウィンドウで [概要] をクリックします。[インターネット経由のアクセス] の右側にある [CNAME ドメイン名] (推奨) または [バケットドメイン名] をコピーします。

  2. ドメインを所有するアカウントで Alibaba Cloud DNS コンソールにログインします。対象ドメインの [操作] 列で、[設定] をクリックします。

  3. [レコードの追加] をクリックします。以下のようにレコード情報を入力し、他の設定はデフォルト値のままにします。

    説明

    CNAME レコードが既に存在する場合は、レコードの [操作] 列にある [編集] をクリックし、レコード値を OSS バケットの CNAME ドメイン名 (推奨) またはパブリックエンドポイントに変更します。

    • [レコードタイプ] で、[CNAME] を選択します。

    • [ホスト名]: apex ドメイン (ルートドメイン) をマッピングする場合は、@ を入力します。サブドメイン (例:image.oss-example.cn) をマッピングする場合は、サブドメインのプレフィックス (例:image) を入力します。

    • [レコード値]: CNAME ドメイン (推奨) またはパブリックエンドポイント (例:p******.cn-hangzhou.taihang***.cn または pub******.oss-cn-hangzhou.aliyuncs.com) を入力します。

  4. [OK] をクリックします。表示される [リソースレコード変更の確認] ダイアログボックスで、再度 [OK] をクリックして DNS 設定を完了します。

重要

DNS レコードが有効になるまでの時間は、その TTL (Time to Live) 設定に依存します。変更がグローバルに伝播するまでには、数分から数時間かかることがあります。設定直後にドメインにアクセスできないのは正常です。しばらく待つか、ローカルの DNS キャッシュをクリアしてみてください。

ステップ 3:カスタムドメイン名によるアクセスの検証

ドメインマッピングと DNS 設定が完了したら、バケットのアクセス制御リスト (ACL) 設定に基づいて検証方法を選択します。

公開読み取りおよび公開読み書きバケット

ブラウザで、URL 形式 http://your_domain_name/object_path を使用してバケット内のオブジェクトにアクセスします。ここで、your_domain_name はマッピングしたカスタムドメイン、object_path はバケット内のオブジェクトのアクセスパスです。たとえば、オブジェクト dest.jpg がバケットの exampledir ディレクトリに保存されている場合、object_pathexampledir/dest.jpg です。次の図は、アクセス結果を示しています:

image

プライベートバケット

プライベートバケットにアクセスする場合、アクセス URL には署名を含める必要があります。以下の手順は、コンソールからオブジェクトの署名付き URL を取得する方法を示しています。署名とその生成方法の詳細については、署名バージョン 4 (推奨) をご参照ください。

  1. バケットページに移動し、対象のバケット名をクリックします。

  2. アクセスしたい対象オブジェクトの [操作] 列で、[詳細の表示] をクリックします。

  3. [ドメイン] を [カスタムドメイン名] に設定し、ドロップダウンリストからマッピングしたカスタムドメインを選択し、[オブジェクト URL のコピー] をクリックします。

  4. ブラウザで URL にアクセスします。次の図は、アクセス結果を示しています。

image

ドメイン名をアクセラレーションエンドポイントにマッピングする

カスタムドメインを使用して、中国本土と他のリージョン間でのファイルのアップロードやダウンロードなど、バケットの長距離データ転送を高速化するには、ドメインをバケットにマッピングし、転送アクセラレーションを有効にして、CNAME レコードをアクセラレーションエンドポイントに向けるように更新します。

ステップ 1:ドメインをバケットにマッピングする

  1. バケットページに移動し、対象のバケット名をクリックし、左側のナビゲーションウィンドウで [バケット設定] > [ドメイン] をクリックします。

  2. [カスタムドメイン名のマッピング] をクリックし、マッピングするドメイン (例:oss-example.cn) を入力します。システムは、ドメインがマッピング要件を満たしているかを自動的にチェックします。

    image

  3. チェックに合格したら、ドメインをバケットにマッピングします。

    直接マッピング

    ドメインが現在ご利用の Alibaba Cloud アカウントに属している場合は、直接マッピングします。[確認] をクリックして、ドメインをバケットにマッピングします。

    image

    ドメインの所有権を検証してマッピングする

    ドメインが別の Alibaba Cloud アカウントに属しているか、別の DNS プロバイダーによって管理されている場合は、マッピングする前にまずドメインの所有権を検証する必要があります。以下の手順は、別の Alibaba Cloud アカウントに属するドメインの所有権を検証し、マッピングするまでの全プロセスを示しています。

    1. ドメインを所有するアカウントで Alibaba Cloud DNS コンソールにログインします。対象ドメインの [操作] 列で、[設定] をクリックします。

    2. [レコードの追加] をクリックします。以下のようにレコード情報を入力し、他の設定はデフォルト値のままにします。

      • [レコードタイプ][TXT] を選択します。

      • [ホスト名]: OSS コンソールに表示されるホスト名 (例:_dnsauth) を入力します。サブドメイン (例:image.oss-example.cn) をマッピングする場合は、ホスト名にサブドメインのプレフィックスを追加します。例:_dnsauth.image

      • [レコード値]: OSS コンソールに表示されるレコード値 (例:21a0****************************) を入力します。

    3. [OK] をクリックします。表示される [リソースレコード変更の確認] ダイアログボックスで、再度 [OK] をクリックします。

    4. OSS コンソールに戻り、[ドメイン所有権の検証] をクリックします。これにより、ドメインがバケットにマッピングされます。DNS レコードが有効になるまでには時間がかかる場合があります。エラーが表示された場合は、数分待ってから再度試してください。

    説明

    TXT レコードはドメインの所有権の検証にのみ使用できます。検証が成功した後は削除してください。その後の使用には影響しません。

ステップ 2:転送アクセラレーションの有効化

  1. バケットページに移動し、対象のバケット名をクリックし、左側のナビゲーションウィンドウで [バケット設定] > [転送アクセラレーション] をクリックします。

  2. [転送アクセラレーションを有効化] します。表示されるダイアログボックスで、通知をよく読み、[OK] をクリックします。

  3. [アクセラレーションエンドポイント] をコピーします。

ステップ 3:CNAME レコードをアクセラレーションエンドポイントに向けるように設定する

以下の手順は、Alibaba Cloud DNS を使用して CNAME レコードを設定する方法を示しています。

重要

OSS がカスタムドメインからのリクエストを正しくルーティングするためには、CNAME レコードを OSS 転送アクセラレーションエンドポイントに向ける前に、コンソールでカスタムドメイン名を対象のバケットにマッピングする必要があります。このマッピングがないと、ドメインからの受信リクエストは意図したバケットに解決できず、予期しないコンテンツが提供される可能性があります。

逆に、ドメインマッピングが削除された場合は、ルーティングエラーを防ぐために、対応する CNAME レコードも速やかに削除する必要があります。

  1. ドメインを所有するアカウントで Alibaba Cloud DNS コンソールにログインします。対象ドメインの [操作] 列で、[設定] をクリックします。

  2. [レコードの追加] をクリックします。以下のようにレコード情報を入力し、他の設定はデフォルト値のままにします。

    説明

    CNAME レコードが既に存在する場合は、レコードの [操作] 列にある [編集] をクリックし、[レコード値] を [アクセラレーションエンドポイント] に変更します。

    • [レコードタイプ] で、[CNAME] を選択します。

    • [ホスト名]: apex ドメイン (ルートドメイン) をマッピングする場合は、@ を入力します。サブドメイン (例:image.oss-example.cn) をマッピングする場合は、サブドメインのプレフィックス (例:image) を入力します。

    • [レコード値] で、[アクセラレーションエンドポイント] を入力します。

  3. [OK] をクリックします。表示される [リソースレコード変更の確認] ダイアログボックスで、再度 [OK] をクリックして DNS 設定を完了します。

説明

DNS レコードが有効になるまでの時間は、その TTL (Time to Live) 設定に依存します。変更がグローバルに伝播するまでには、数分から数時間かかることがあります。設定直後にドメインにアクセスできないのは正常です。しばらく待つか、ローカルの DNS キャッシュをクリアしてみてください。

ステップ 4:カスタムドメイン名によるアクセスの検証

ドメインマッピングと DNS 設定が完了したら、バケットのアクセス制御リスト (ACL) 設定に基づいて検証方法を選択します。

公開読み取りおよび公開読み書きバケット

ブラウザで、URL 形式 http://your_domain_name/object_path を使用してバケット内のオブジェクトにアクセスします。ここで、your_domain_name はマッピングしたカスタムドメイン、object_path はバケット内のオブジェクトのアクセスパスです。たとえば、オブジェクト dest.jpg がバケットの exampledir ディレクトリに保存されている場合、object_pathexampledir/dest.jpg です。次の図は、アクセス結果を示しています:

image

プライベートバケット

プライベートバケットにアクセスする場合、アクセス URL には署名を含める必要があります。以下の手順は、コンソールからオブジェクトの署名付き URL を取得する方法を示しています。署名とその生成方法の詳細については、署名バージョン 4 (推奨) をご参照ください。

  1. バケットページに移動し、対象のバケット名をクリックします。

  2. アクセスしたい対象オブジェクトの [操作] 列で、[詳細の表示] をクリックします。

  3. [ドメイン] を [カスタムドメイン名] に設定し、ドロップダウンリストからマッピングしたカスタムドメインを選択し、[オブジェクト URL のコピー] をクリックします。

  4. ブラウザで URL にアクセスします。次の図は、アクセス結果を示しています。

image

本番環境への適用

ベストプラクティス

  • 安全な転送:HTTPS の有効化

    カスタムドメインにSSL 証明書を設定して、HTTPS アクセスを強制します。HTTPS プロトコルは TLS/SSL を使用して転送中のデータを暗号化し、データの傍受や改ざんを防ぎます。これにより、ブラウザに「安全ではありません」という警告が表示されるのを防ぎ、ユーザーの信頼とブランドイメージを向上させます。

  • クロスオリジンアクセス:CORS ルールの設定

    https://web.example.cn などにデプロイされたフロントエンドアプリケーションが、https://oss.example.cn などの異なるドメインにある OSS リソースにアクセスする必要がある場合、CORS ルールを設定する必要があります。これらのルールは、アプリケーションのドメインからのクロスオリジンリクエストを許可します。CORS は HTTP ヘッダーを使用してクロスオリジンアクセスの権限を制御し、アプリケーションが OSS リソースにアクセスできるようにしながら、不正なリクエストをブロックします。

  • ゼロダウンタイムでの切り替え:ダウンタイムなしでドメインを切り替える

    バケットエンドポイントからマッピングされたカスタムドメインに切り替える必要がある場合、サービスの中断を避けるために、以下の段階的な戦略を使用します。

    1. 準備フェーズ:カスタムドメインをバケットにマッピングし、CNAME レコードを設定します。テスト環境で、hosts ファイルまたはテストドメインを使用して、新しいカスタムドメイン設定の機能とパフォーマンスを完全に検証します。すべての機能が期待どおりに動作することを確認します。

    2. カナリアリリースフェーズ (オフピーク時間帯を推奨):トラフィックの一部を徐々にカスタムドメインに切り替えます。この段階的なアプローチにより、切り替えに伴うリスクを最小限に抑えます。

    3. 検証フェーズ:アクセスログとエラー率を注意深く監視します。応答時間や成功率などの主要なメトリックを分析して、サービスの安定性を確保します。

    4. 完全リリースフェーズ:徹底的な検証の後、すべてのトラフィックをカスタムドメインに移行して、ドメイン移行を完了します。

    5. ロールバックプレイブック:問題が発生した場合は、直ちにバケットエンドポイントにロールバックし、根本原因を分析して再デプロイします。

  • パフォーマンスとセキュリティ:サブドメインで利用を分離する

    静的 Web リソース用の static.example.com や画像リソース用の images.example.com など、異なるビジネス目的に応じて異なるサブドメインを割り当てます。このドメイン分離戦略は、ブラウザの同時接続を最適化し (単一ドメインの制限を回避)、独立したキャッシュポリシーを設定し、詳細な権限管理とセキュリティポリシーを実装するのに役立ちます。これにより、アクセス速度が向上し、全体的なセキュリティが強化されます。

  • 機能拡張:静的 Web サイトのホスティング

    OSS 上で完全な静的 Web サイト (HTML、CSS、JS ファイルを含む) をホストするには、カスタムドメインをマッピングした後に静的 Web サイトホスティングを設定します。これにより、デフォルトのホームページや 404 エラーページなどの基本的な Web サイト機能が有効になります。

  • パフォーマンス最適化:CDN アクセラレーションの設定

    世界中のユーザーに静的リソースを配信する必要があるユースケースでは、カスタムドメイン上で CDN アクセラレーションサービスを設定することを推奨します。これにより、コンテンツがグローバルに分散されたエッジノードにキャッシュされ、アクセスレイテンシの低減、同時実行性の向上、およびユーザーエクスペリエンスの向上が実現します。

リスク軽減

  • 帯域幅の盗用防止:Referer ベースのホットリンク保護の設定

    他の Web サイトが画像や動画などのリソースを使用し、不要なトラフィックコストが発生するのを防ぐために、ホットリンク保護ポリシーを使用してデータ転送の乱用を防ぎます。ホワイトリストを使用してアクセス元を制限することで、コストを効果的に管理し、リソースを不正使用から保護できます。

  • 行動監査とトラブルシューティング:アクセスログの有効化

    OSS のリアルタイムログクエリを有効にして、アクセス時間、ソース IP、リクエストタイプ、レスポンスステータスなど、すべてのアクセスリクエストに関する詳細情報を記録します。これにより、セキュリティ監査、パフォーマンス分析、トラブルシューティング、およびビジネス運用の意思決定が容易になります。

制限事項

  • マッピング制限:各バケットには最大 100 個のカスタムドメイン名をマッピングできます。

  • ドメインの一意性:カスタムドメイン名は、一度に 1 つのバケットにのみマッピングできます。マッピングを変更するには、まず元のバケットからドメインのマッピングを解除して、ドメイン名が一意の宛先と明確なアクセスパスを持つようにする必要があります。

    説明

    レガシーの画像処理機能の一部のユーザーにとって、画像処理に既に使用されているドメインはバケットにマッピングできません。新しい画像処理機能にはこの制限はありません。

  • ドメイン名の種類:中国語ドメインや *.example.cn のようなワイルドカードドメインのマッピングはサポートされていません。これにより、DNS 解決の安定性と互換性が確保されます。

    説明

    Content Delivery Network (CDN) を使用して OSS へのアクセスを高速化する場合、ワイルドカードドメインをマッピングしますが、そのドメインは OSS コンソールには表示されません。

よくある質問

API 経由でドメインをマッピングする際に NeedVerifyDomainOwnership エラーが発生した場合はどうすればよいですか?

このエラーは、ドメインの所有権を検証していないことを示します。以下の手順を実行してドメインの所有権を検証してください:

  1. CreateCnameToken 操作を呼び出して、ドメイン所有権の検証に必要な CnameToken を作成します。

    説明

    デフォルトでは、CnameToken は作成後 72 時間で有効期限が切れます。有効期限が切れる前に再度トークンを作成しようとすると、既存の CnameToken が返されます。

  2. このドキュメントの指示に従って、ご利用の DNS プロバイダーで TXT レコードを設定し、ドメイン所有権の検証を完了します。

  3. PutCname 操作を呼び出して、カスタムドメイン名をマッピングします。

アクセラレーションエンドポイント経由でリソースにアクセスする際に 502 または 504 エラーが発生した場合はどうすればよいですか?

この問題は通常、OSS 転送アクセラレーションの「自動パス切り替え」メカニズムの正常な動作によって引き起こされます。長距離転送中のネットワークの変動やリンク品質の変化に適応するため、サービスは最適な伝送パスを動的に選択します。パスの切り替え中に、少数のリクエストが中断され、502 または 504 エラーが発生することがあります。これは完全に避けることはできません。成功率を向上させるために、クライアント側のコードに指数バックオフのリトライロジックを実装することを推奨します。

解決の失敗や接続タイムアウトなどのネットワークエラーをトラブルシューティングするにはどうすればよいですか?

OSS から応答を受け取った場合は、リクエスト ID を取得し、OSS 自己診断ツールを使用して問題を診断します。

リクエストが OSS サーバーに到達する前に中断された場合、つまり リクエスト ID が空の場合は、以下の手順でトラブルシューティングを行ってください:

  • 接続拒否:このエラーは通常、クライアントと OSS が同じリージョンにあるがポートがブロックされているか、クロスリージョンアクセスに内部エンドポイントが使用されていることを示します。正しいパブリックエンドポイントを確認してアクセスに使用してください。また、ping および telnet コマンドを使用して、クライアント側のファイアウォール設定やネットワーク接続の制限を確認してください。

  • ConnectionTimeOut:これは通常、ネットワーク環境が悪いか、タイムアウト設定が短いために発生します。SDK の接続タイムアウトと読み取りタイムアウトの値を増やし、リトライメカニズムを有効にしてください。大きなファイルの転送には、マルチパートアップロード再開可能なアップロードを使用して転送の安定性を向上させてください。ネットワークリンクの問題である場合は、CDN または OSS 転送アクセラレーションサービスの使用を検討してください。

  • ソケットタイムアウトまたはソケットクローズ:これは、OSS への接続がタイムアウトしたか、予期せず閉じられたことを示します。SDK 設定でソケットタイムアウトを増やしてください (例:Java SDK の ClientConfiguration.setSocketTimeout メソッド)。

  • 接続リセット:エンドポイント設定が間違っている、またはセキュリティ上の理由でバケットが制限されているなど、さまざまな理由で接続がリセットされました。以下の順序でトラブルシューティングを行ってください:

    1. ping または Alibaba Cloud Kunlun 診断ツールを使用して、クライアントのネットワーク接続が正常かどうかを確認します。

    2. コードで設定されたエンドポイントが正しく、適切なプロトコルプレフィックス (http:// または https://) が含まれていることを確認します。

    3. セキュリティ攻撃やポリシー違反によりバケットが OSS サンドボックスに置かれていないことを確認します。これによりアクセスが制限されます。

    4. 問題が解決しない場合は、Wireshark などのツールを使用してネットワークパケットをキャプチャし、テクニカルサポートに連絡して詳細な調査を依頼してください。

OSS のアップロードまたはダウンロード速度が非常に遅い場合はどうすればよいですか?

クライアントのローカルネットワーク帯域幅、ネットワークリンクの品質、および転送ポリシーの設定が、主に OSS の転送速度に影響します。

  • 一般的なトラブルシューティング:まず、現在の帯域幅使用量がバケットの帯域幅制限に達していないことを確認します。次に、MTR ツールを使用してネットワークリンク分析を行うことで、パケット損失、高レイテンシ、またはルーティングの異常を確認します。クロスリージョンまたは長距離転送の場合、ネットワークパスを最適化するために転送アクセラレーションを有効にして使用することを強く推奨します。

  • ツールの最適化:大きなファイルや多数のファイルを転送する場合は、コマンドラインインターフェイス ossutil 2.0 の使用を推奨します。その probe コマンドを使用して、現在のネットワーク状況を確認してください。

  • SDK の最適化:大きなファイルの場合、マルチパートアップロード再開可能なアップロード機能を使用する必要があります。パートサイズ (part_size) と同時実行スレッド数 (num_threads) を適切に設定してください。ネットワーク状態が良い場合は、パートサイズを大きくしてリクエスト数を減らします。さらに、SDK クライアントの初期化時に CRC64 検証を無効にし (例:Python で enable_crc=False を設定)、データ整合性チェックのためにリクエストヘッダーに Content-MD5 を追加します。これにより、データセキュリティを確保しながら転送パフォーマンスを向上させることができます。

カスタムドメイン経由でアクセスしたときに、ファイルがプレビューされるかダウンロードされるかを制御するにはどうすればよいですか?

Content-Disposition HTTP レスポンスヘッダーが、ファイルがプレビューされるかダウンロードされるかを決定します。OSS バケットエンドポイントを使用してファイルにアクセスする場合、OSS はセキュリティのために Content-Disposition: attachment ヘッダーを強制的に追加します。しかし、カスタムドメイン経由でファイルにアクセスする場合、OSS はこのヘッダーを追加しないため、動作を制御できます。

  • プレビューを有効にするには:オブジェクトのメタデータに Content-Disposition: attachment ヘッダーが設定されていないこと、およびオブジェクトの Content-Type (MIME タイプ) がファイル形式と正しく一致していることを確認してください。ブラウザがネイティブでサポートしていないファイル形式の場合、以下の方法でプレビュー機能を拡張できます:

    • .doc、.ppt、.pdf ファイルなどのオフィスファイルの場合、WebOffice オンラインプレビューサービスを統合します。

    • .mov などの特殊なビデオ形式の場合、ビデオトランスコーディングサービスを使用して、Web 互換形式に変換してプレビューします。

    • 対応するファイルタイプのブラウザ拡張機能をインストールします。

  • ダウンロードを強制するには:オブジェクトの Content-Disposition メタデータを手動で attachment に設定します。ブラウザはプレビューを試みずに直接ファイルをダウンロードします。

  • 説明

    <video> または <audio> HTML タグはメディアの再生を優先し、attachment ダウンロード指示を無視する場合があります。

ドメインマッピングに失敗し、「ドメインは既に別のバケットにマッピングされています」というメッセージが表示された場合はどうすればよいですか?

ドメインが既に別のバケットにマッピングされている場合は、以下の 2 つの解決策のいずれかを使用してください:

  • 現在のビジネスに新しいサブドメインを使用します。ドメイン oss-example.cn が既に別のバケットにマッピングされている場合は、static.oss-example.cn のような新しいサブドメインをマッピングに使用します。これにより、ドメインレベルでサービスを分離できます。

  • 元のバケットからドメインのマッピングを解除し、対象のバケットにマッピングします。ドメインのマッピングを解除するには、以下の手順に従ってください:

    1. CDN アクセラレーションを有効にしている場合は、まず CDN サービスでオリジンサーバー情報を変更して、アクセラレーションされたドメインが OSS バケットエンドポイントを指さなくなるようにする必要があります。これにより、CDN の back-to-origin の失敗を防ぎます。手順については、オリジンサーバーの設定をご参照ください。

    2. バケットページに移動し、ドメインが現在マッピングされているバケットの名前をクリックし、左側のナビゲーションウィンドウで [バケット設定] > [ドメイン] をクリックします。

    3. ドメインリストで対象のドメインを見つけ、[操作] 列の [マッピング解除] をクリックします。表示されるダイアログボックスで、[OK] をクリックしてドメインのマッピングを解除します。

「ドメイン B がドメイン A に CNAME されており、ドメイン A が OSS にマッピングされている」場合にアクセスが失敗するのはなぜですか?

これは、OSS が HTTP リクエストヘッダーの Host フィールドを厳密に検証するためです。Host ヘッダーは、バケットに実際にマッピングされているドメイン (ドメイン A) と完全に一致する必要があります。ユーザーがドメイン B にアクセスすると、Host ヘッダーは「ドメイン B」となり、マッピングされたドメインと一致しないため、検証が失敗します。したがって、ドメイン間で CNAME チェーンを使用するのではなく、公開されているドメイン (ドメイン B) を直接バケットにマッピングする必要があります。

設定後、カスタムドメインが機能しない、または古いアドレスを指したままなのはなぜですか?

これは、ローカルマシンおよびインターネットサービスプロバイダーでの DNS キャッシュの遅延が原因である可能性があります。通常、この問題は 10 分程度待ってから再試行すると解決します。

解決効率を向上させるため、さまざまなレベルの DNS ノードは、TTL (Time-to-Live) 値によって決定される期間、ドメイン解決結果をキャッシュします。CNAME レコードを変更した後、古いキャッシュは TTL が切れるまでリクエストを古いアドレスに送り続ける可能性があります。ローカルの DNS キャッシュをクリアするか、キャッシュが自動的に更新されるのを待ってから再試行してください。異なるオペレーティングシステムでローカル DNS キャッシュをクリアするコマンドは次のとおりです:

Windows

ipconfig /flushdns

macOS

 sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Linux

 sudo systemd-resolve --flush-caches

署名を必要としない長期間有効な URL で OSS ファイルにアクセスするにはどうすればよいですか?

署名なしで長期間有効な URL を作成するには、2 つの方法があります:

  • ファイルを公開読み取りに設定する:オブジェクトは誰でも制限なくアクセスできるようになります。リソースの不正使用による追加コストを防ぐため、OSS でホットリンク保護ポリシーを設定してアクセス元を制限してください。

  • CDN を介して OSS へのアクセスを高速化する:OSS オブジェクトの権限をプライベートに保ち、CDN でプライベートバケットの back-to-origin 機能を有効にして、公開読み取りアクセスを提供します。CDN は、より優れたアクセスパフォーマンスとキャッシュ機能を提供します。リソースの盗用を防ぐには、CDN レベルでホットリンク保護ルールを設定する必要があります。

カスタムドメインをマッピングした後も、古いファイルの URL を使用できますか?

はい。カスタムドメイン名をマッピングしても、元の OSS バケットエンドポイント経由のアクセスには影響しません。両方の方法が共存できます。古いファイルの URL を取得するには、署名付き URL を使用してファイルをダウンロードするをご参照ください。

カスタムドメインを OSS バケットにマッピングした後、パブリックエンドポイント経由でのみアクセスできますか?内部 (プライベート) ネットワークアクセスにも使用できますか?

OSS バケットにマッピングされたカスタムドメインは、パブリックネットワークアクセス専用であり、内部 (プライベート) アクセスには使用できません。

OSS のカスタムドメイン機能は、DNS プロバイダーで CNAME レコードを作成することによって動作します。このレコードは、ドメインを OSS バケットのパブリックエンドポイント (例:examplebucket.oss-cn-hangzhou.aliyuncs.com) にマッピングします。このメカニズムは、独自のドメインを介して OSS リソースへのパブリックアクセスを可能にするために特別に設計されています。

対照的に、内部ネットワークアクセスは Alibaba Cloud の内部エンドポイント (例:oss-cn-hangzhou-internal.aliyuncs.com) を使用する必要があります。このプライベートアクセスは、バケットと同じリージョンおよび VPC 内にある Alibaba Cloud リソース (ECS や Function Compute など) に制限されます。内部エンドポイントはパブリック DNS で解決できず、CNAME レコードのターゲットにできないため、カスタムドメインを内部アクセスに使用することはできません。

カスタムドメインを使用すると、HTTP リクエストが自動的に HTTPS にリダイレクトされるのはなぜですか?

これは、カスタムドメインで HTTPS への強制リダイレクト機能が有効になっているためです。この設定は、すべての受信 HTTP リクエストを同等の HTTPS リクエストに自動的にリダイレクトします。

OSS 自体はネイティブで強制リダイレクトをサポートしていませんが、この動作は CDN レベルで有効になります。カスタムドメインと HTTPS 証明書で Alibaba Cloud CDN を使用する場合、CDN コンソールで強制リダイレクト (HTTP → HTTPS) オプションを有効にできます。これにより、CDN はすべての HTTP リクエストに対して 301 または 302 レスポンスを返し、ブラウザに HTTPS でリクエストを再送信するよう促します。

HTTP と HTTPS の両方のアクセスを許可するには、Alibaba Cloud CDN コンソールに移動し、関連するドメインを選択して、リダイレクトタイプデフォルト に変更します。詳細な手順については、URL リダイレクトの設定をご参照ください。