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

Object Storage Service:カスタムドメイン名を使用した OSS へのアクセス

最終更新日:Nov 09, 2025

OSS バケットのエンドポイントを使用して HTML ページや画像などのファイルにアクセスすると、ブラウザはオンラインプレビューを許可せずに強制的にダウンロードします。これはユーザーエクスペリエンスに悪影響を与える可能性があります。カスタムドメイン名をバケットにバインドして、ファイルに直接アクセスできます。これにより、ファイルをオンラインでプレビューでき、より柔軟なアクセス制御が可能になります。

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

仕組み

DNS CNAME (Canonical Name) レコードを使用して、カスタムドメイン名を OSS バケットにバインドできます。ドメイン名を、OSS がバケットに提供するエンドポイントに向けます。ユーザーがカスタムドメイン名にアクセスすると、DNS システムはそれを対応する OSS バケットエンドポイントに解決します。これにより、OSS リソースへの直接アクセスが可能になります。

ニーズに基づいてカスタムドメイン名をバインドする方法を選択してください:

パブリックエンドポイントへのドメイン名のバインド

Web サイトの画像やスクリプトなどの静的ファイルをホストするには、ドメイン名をパブリックエンドポイントにバインドします。これにより、基本的なファイルアクセスとオンラインプレビューが可能になります。

ステップ 1: バケットへのドメイン名のバインド

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

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

    image

  3. チェックに合格すると、ドメイン名をバケットにバインドできます。

    直接バインド

    ドメイン名が現在のアカウントにある場合は、[バインドの確認] をクリックしてバケットに直接バインドできます。

    image

    ドメイン所有権の検証とバインド

    ドメイン名が別の Alibaba Cloud アカウントまたは別のドメイン名サービスプロバイダーに属している場合は、バインドする前にまずドメインの所有権を検証する必要があります。次の手順は、ドメインの所有権の検証とドメイン名のバインドの完全なプロセスを示しています。別の Alibaba Cloud アカウントを例として使用します。

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

    2. [レコードの追加] をクリックし、次のリストの説明に従ってレコード情報を入力します。他の設定項目については、デフォルト設定を使用できます。

      • [レコードタイプ][TXT] に設定します。

      • [ホスト] を OSS コンソールからのホストレコード (例: _dnsauth) に設定します。サブドメインの場合は、ホストレコードの前にサブドメインプレフィックスを追加します。たとえば、image.oss-example.cn をバインドする場合、[ホスト] を _dnsauth.image に設定します。

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

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

    4. OSS コンソールに戻り、[ドメイン所有権の検証とバインド] をクリックしてドメイン名をバケットに関連付けます。DNS レコードが有効になるまでには時間がかかります。エラーが発生した場合は、数分待ってから再試行してください。

    説明

    TXT レコードは、ドメイン名の所有権を検証するためにのみ使用されます。検証が成功した後、削除できます。これは、その後の使用には影響しません。

ステップ 2: パブリックエンドポイントを指す CNAME レコードの設定

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

重要

カスタムドメイン名の CNAME レコードを OSS パブリックエンドポイントにポイントするように設定する前に、コンソールでカスタムドメイン名を OSS バケットにバインドする必要があります。そうしないと、カスタムドメイン名を使用してアクセスしたときに OSS がバケットを識別できず、予期しないコンテンツが返される原因となります。ドメイン名のバインドを解除した後は、OSS を指す CNAME レコードも速やかに削除する必要があります。

自動設定

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

説明

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

image

手動設定

ドメイン名に CNAME レコードが既に存在する場合、またはドメイン名が別の Alibaba Cloud アカウントまたは別のドメイン名サービスプロバイダーに属している場合は、対応するプロバイダーで CNAME レコードを設定する必要があります。次の手順は、Alibaba Cloud DNS を例として CNAME レコードを設定する方法を示しています。

  1. [バケットリスト] ページに移動し、ターゲットバケットの名前をクリックし、左側のナビゲーションウィンドウで [概要] をクリックします。[パブリックエンドポイント] の右側にある [バケットドメイン名] をコピーします。

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

  3. [レコードの追加] をクリックし、次のリストの説明に従ってレコード情報を入力します。他の設定項目はデフォルト設定のままにしておくことができます。

    説明

    CNAME レコードが既に存在する場合は、レコードの [操作] 列にある [変更] をクリックして、その値を OSS バケットのパブリックエンドポイントに変更します。

    • [レコードタイプ][CNAME] に設定します。

    • [ホスト] フィールドに、プライマリドメイン名をバインドする場合は @ を入力し、サブドメインをバインドする場合はサブドメインプレフィックスを入力します。たとえば、image.oss-example.cn をバインドする場合、[ホスト] を image に設定します。

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

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

説明

DNS レコードが有効になるまでの時間は TTL 設定によって異なります。通常、レコードが完全にアクティブになるまでには数分から数時間かかります。設定後すぐにドメイン名にアクセスできないのは正常です。レコードが有効になるのを待つか、ローカル DNS キャッシュをクリアしてみてください。

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

ドメイン名をバインドして DNS レコードを設定した後、バケットのアクセス制御リスト (ACL) に基づいて検証方法を選択します。

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

ブラウザで、URL: http://your_domain_name/object_path を使用して OSS 内のオブジェクトにアクセスします。この URL で、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. チェックに合格すると、ドメイン名をバケットにバインドできます。

    直接バインド

    ドメイン名が現在のアカウントにある場合は、[バインドの確認] をクリックしてバケットに直接バインドできます。

    image

    ドメイン所有権の検証とバインド

    ドメイン名が別の Alibaba Cloud アカウントまたは別のドメイン名サービスプロバイダーに属している場合は、バインドする前にまずドメインの所有権を検証する必要があります。次の手順は、ドメインの所有権の検証とドメイン名のバインドの完全なプロセスを示しています。別の Alibaba Cloud アカウントを例として使用します。

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

    2. [レコードの追加] をクリックし、次のリストの説明に従ってレコード情報を入力します。他の設定項目については、デフォルト設定を使用できます。

      • [レコードタイプ][TXT] に設定します。

      • [ホスト] を OSS コンソールからのホストレコード (例: _dnsauth) に設定します。サブドメインの場合は、ホストレコードの前にサブドメインプレフィックスを追加します。たとえば、image.oss-example.cn をバインドする場合、[ホスト] を _dnsauth.image に設定します。

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

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

    4. OSS コンソールに戻り、[ドメイン所有権の検証とバインド] をクリックしてドメイン名をバケットに関連付けます。DNS レコードが有効になるまでには時間がかかります。エラーが発生した場合は、数分待ってから再試行してください。

    説明

    TXT レコードは、ドメイン名の所有権を検証するためにのみ使用されます。検証が成功した後、削除できます。これは、その後の使用には影響しません。

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

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

  2. [転送アクセラレーションを有効にする] をオンにします。表示されるダイアログボックスで、アクティベーションプロンプトを注意深く読み、[OK] をクリックします。

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

ステップ 3: アクセラレーションエンドポイントを指す CNAME レコードの設定

次の手順は、Alibaba Cloud DNS を例として CNAME レコードを設定する方法を示しています。

重要

カスタムドメイン名の CNAME レコードを OSS アクセラレーションエンドポイントにポイントするように設定する前に、コンソールでカスタムドメイン名を OSS バケットにバインドする必要があります。そうしないと、カスタムドメイン名を使用してアクセスしたときに OSS がバケットを識別できず、予期しないコンテンツが返される原因となります。ドメイン名のバインドを解除した後は、OSS を指す CNAME レコードも速やかに削除する必要があります。

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

  2. [レコードの追加] をクリックし、次のリストの説明に従ってレコード情報を入力します。他の設定項目にはデフォルト設定を使用できます。

    説明

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

    • [レコードタイプ][CNAME] に設定します。

    • [ホスト] には、プライマリドメイン名をバインドする場合は @ を入力します。サブドメインをバインドする場合は、サブドメインプレフィックスを入力します。たとえば、image.oss-example.cn をバインドする場合、[ホスト] を image に設定します。

    • [レコード値][アクセラレーションエンドポイント] に設定します。

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

説明

DNS レコードが有効になるまでの時間は TTL 設定によって異なります。通常、レコードが完全にアクティブになるまでには数分から数時間かかります。設定後すぐにドメイン名にアクセスできないのは正常です。レコードが有効になるのを待つか、ローカル DNS キャッシュをクリアしてみてください。

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

ドメイン名をバインドして DNS レコードを設定した後、バケットのアクセス制御リスト (ACL) に基づいて検証方法を選択します。

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

ブラウザで、URL: http://your_domain_name/object_path を使用して OSS 内のオブジェクトにアクセスします。この URL で、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 プロトコルは、Transport Layer Security (TLS)/Secure Sockets Layer (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 サイトのホスティング

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

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

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

リスク防止

  • データ転送の不正使用からの保護: Referer ベースのホットリンク保護の設定

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

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

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

クォータと制限

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

  • ドメイン名の一意性: カスタムドメイン名は、一度に 1 つの バケット にのみバインドできます。ドメイン名を再バインドするには、まず元の バケット からバインドを解除する必要があります。これにより、ドメイン名のターゲットの一意性と明確なアクセスパスが保証されます。

    説明

    レガシー画像処理機能の一部のユーザーの場合、画像処理に使用されたドメイン名はバケットにバインドできません。新しい画像処理機能にはこの制限はありません。

  • ドメイン名の種類: 中国のドメイン名およびワイルドカードドメイン名 (例: *.example.cn) はサポートされていません。これは、DNS 解決の安定性と互換性を確保するためです。

    説明

    CDN を使用して OSS を高速化する場合、ワイルドカードドメイン名をバインドできますが、OSS コンソールには表示されません。

よくある質問

API を使用してドメイン名をバインドするときに NeedVerifyDomainOwnership エラーが返された場合はどうすればよいですか?

このエラーは、ドメインの所有権が検証されていないことを示します。次のようにドメインの所有権を検証できます:

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

    説明

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

  2. このトピックの指示に従って、ドメイン名サービスプロバイダーで TXT レコードを設定し、ドメイン所有権の検証を完了します。

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

アクセラレーションドメイン名にアクセスしたときに 502 または 504 エラーが返された場合はどうすればよいですか?

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

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

OSS にリクエストしたときにレスポンスを受け取った場合は、リクエスト ID を取得し、[OSS 自己診断ツール] を開いて問題を診断します。

リクエストが OSS サーバーに到達する前に中断された場合、つまり Request ID が空の場合は、次のように問題をトラブルシューティングします:

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

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

  • ソケットタイムアウトまたはソケットクローズ: これは、OSS への接続がタイムアウトしたか、異常にクローズされたことを示します。SDK 設定で、ソケットタイムアウト値を増やします。たとえば、Java SDK では ClientConfiguration.setSocketTimeout メソッドを使用します。

  • 接続リセット: 接続リセットは、エンドポイント設定が正しくない、またはセキュリティ上の理由でバケットが制限されているなど、さまざまな理由で発生する可能性があります。次の順序で問題をトラブルシューティングします:

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

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

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

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

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

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

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

  • ツールの最適化: 大量のファイルまたは多数のファイルを転送するには、ossutil 2.0 コマンドラインツールを使用することをお勧めします。その probe コマンドを使用して、現在のネットワークステータスを検出できます。

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

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

ファイルのプレビューまたはダウンロードの動作は、HTTP ヘッダー Content-Disposition によって決まります。コアメカニズムは次のとおりです: OSS バケットエンドポイントを使用してファイルにアクセスすると、OSS はセキュリティのために Content-Disposition: attachment ヘッダーを追加し、ダウンロードを強制します。ただし、カスタムドメイン名を使用してファイルにアクセスする場合、OSS はこのヘッダーを追加しません。これにより、動作を制御できます。

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

    • .doc、.ppt、.pdf などのオフィスファイルの場合、WebOffice オンラインプレビューサービスを統合してドキュメントプレビューを有効にできます。

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

    • 対応するファイルタイプのブラウザプラグインをインストールできます。

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

    説明

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

ドメインが別のバケットにバインドされているというメッセージでドメインのバインドが失敗した場合はどうすればよいですか?

ドメイン名がすでに別のバケットにバインドされている状況に遭遇した場合は、次の 2 つの解決策のいずれかを使用できます:

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

  • 元のバケットからドメイン名のバインドを解除し、ターゲットバケットにバインドします。バインドを解除する手順は次のとおりです:

    1. CDN アクセラレーションが有効になっている場合は、まず CDN アクセラレーションサービスのオリジン情報を変更して、アクセラレーションドメイン名が OSS バケットエンドポイントを指さなくなるようにする必要があります。これにより、CDN のオリジンフェッチの失敗を防ぎます。オリジンの変更方法の詳細については、「オリジンサーバーの設定」をご参照ください。

    2. [バケットリスト] に移動し、元々バインドされていたバケットの名前をクリックし、左側のナビゲーションウィンドウで [バケット設定] > [ドメイン名] をクリックします。

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

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

これは、OSS が HTTP リクエストヘッダーの Host フィールドを厳密に検証するためです。ホストがバケットに実際にバインドされているドメイン名 (ドメイン A) と同一であることを要求します。ドメイン B にアクセスすると、Host ヘッダーは「ドメイン B」となり、バインドされたドメイン名と一致しないため、検証が失敗します。したがって、ドメイン名間で CNAME レコードを使用してリクエストを転送するのではなく、実際のパブリックアクセスドメイン名 (ドメイン B) をバケットに直接バインドする必要があります。

設定後、カスタムドメイン名が無効になったり、古いアドレスにアクセスしたりするのはなぜですか?

これは、ローカルおよびキャリアの DNS キャッシュによって引き起こされる解決の遅延が原因である可能性が最も高いです。解決効率を向上させるために、DNS システムのさまざまなレベルのノードは、Time-to-Live (TTL) 値に基づいてドメイン名解決結果を一定期間キャッシュします。CNAME レコードが変更された後、キャッシュの有効期限が切れていない場合、アクセスリクエストはまだ古いアドレスに送られる可能性があります。ローカル DNS キャッシュをクリアするか、キャッシュが自動的に更新されるのを待ってから再試行してみてください。さまざまなオペレーティングシステムでローカル DNS キャッシュをクリアする方法は次のとおりです:

Windows

ipconfig /flushdns

macOS

 sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Linux

 sudo systemd-resolve --flush-caches

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

次の 2 つの方法を使用して、長期有効な URL アクセスを実現できます:

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

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

カスタムドメイン名をバインドした後も、以前のファイル URL を使用できますか?

はい、できます。カスタムドメイン名をバインドしても、元の OSS バケットエンドポイントを使用したアクセスには影響しません。両方は共存できます。以前のファイル URL の取得方法の詳細については、「署名付き URL を使用したオブジェクトのダウンロード」をご参照ください。

カスタムドメイン名を使用することは、パブリックネットワークアクセスを意味しますか?

はい。カスタムドメイン名のバインド機能は、主にパブリックネットワークアクセスシナリオで使用されます。バケットのパブリックエンドポイントに解決することで機能し、ファイルが強制的にダウンロードされるのではなく、ブラウザで直接プレビューできるようになります。