Amazon S3 Compatibility APIのオブジェクト・ストレージでのホスト・スタイルのサポート
Object Storage Amazon S3 Compatibility APIがAWS仮想ホスト・スタイルURLをどのようにサポートしているかをご覧ください。
Oracle Cloud Infrastructure (OCI)では、オブジェクトに対処するための次の方法がサポートされるようになりました。
- パス・スタイル: URLの形式は次のとおりです。
https://<namespace>.compat.objectstorage.<region>.oci.customer-oci.com/<bucket_name>/<object_name> - 仮想ホスト・スタイル: URLの形式は次のとおりです。
https://<bucket_name>.vhcompat.objectstorage.<region>.oci.customer-oci.com/<object_name>ここでは、バケット名はURLのドメイン名の一部であり、
<object_name>のみがパスの一部です。ノート
仮想ホスト・スタイルのエンドポイントで作成されたバケットのみが、仮想ホスト・スタイルのURLを使用できます。これらのバケットは、S3 APIおよびSDKを使用して作成する必要があります。OCI CLIまたはコンソールを使用して、仮想ホスト・スタイル・エンドポイントを含む仮想ホスト・スタイル・バケットを作成することはできません。
以前は、Object Storage Amazon S3 Compatibility APIでは、次の形式を使用したパス・スタイルのみがサポートされていました。
https://<namespace>.compat.objectstorage.<region>.oci.customer-oci.com/<bucket_name>/<object_name>
ここで、<namespace>は、すべてのバケットおよびオブジェクトの最上位のコンテナとして機能するオブジェクト・ストレージ・ネームスペースを表します。
OCIアカウントが作成されると、各OCIテナントには、システム生成および不変のオブジェクト・ストレージ・ネームスペース名が1つ割り当てられます。ネームスペースは、すべてのリージョンのすべてのコンパートメントにまたがります。バケット名は、ネームスペース内で一意である必要があります。ネームスペースはリージョン固有ですが、ネームスペース名自体はすべてのリージョンで同じです。
OCIでは、仮想ホスト・スタイル・アクセスのサポートが追加され、バケット名をURLのサブドメインの一部として含めることができます。AWS SDKを使用してオブジェクト・ストレージにアクセスする場合は、新しいエンドポイントで仮想ホスト・スタイルURLを使用できます:
https://<bucket_name>.vhcompat.objectstorage.<region>.oci.customer-oci.com/<object_name>
OCIで仮想ホスト・スタイルのURLを使用する場合、バケット名は同じリージョン内のすべてのテナントで一意である必要があります。
バケットの動作を理解するには、次の点を考慮してください。
- 仮想ホスト・スタイルURLで作成されたバケットは、リージョン内のすべてのテナント間で一意であることが保証されます。
- 仮想ホスト・スタイルURLを使用して、同じリージョン内ですでに使用されている名前を持つバケットを作成することはできません。
- パス・スタイルのURLで作成された既存のバケットがある場合、仮想ホスト・スタイルのURLを介してアクセスすることはできません。
- パス・スタイル・アクセスのサポートは続行されるため、パス・スタイルのURLを使用して既存のバケットにアクセスできます。
次の表に、バケット・アクセスを示します。
| ネイティブAPIアクセス | S3パス・スタイル・アクセス | S3仮想ホスト・スタイルへのアクセス | |
|---|---|---|---|
| OCIネイティブAPIを使用して作成されたバケット | ✓ | ✓ | |
| OCI S3パス・スタイルAPIを使用して作成されたバケット | ✓ | ✓ | |
| OCI S3仮想スタイルAPIを使用して作成されたバケット | ✓ | ✓ | ✓ |
このバージョンでは、仮想ホスト・スタイルURLを使用して作成された新しいバケットのみが仮想ホスト・スタイル・アクセスをサポートします。
テナンシをまたがったオブジェクト・ストレージ・リソースへのアクセス
Amazon S3 Compatibility APIで仮想ホスト・スタイルのサポートを使用して、独自のテナンシを持つ別の組織でリソースにアクセスして共有する場合、すべてのオブジェクト、マルチパート・アップロードおよびタグ付けAPIがクロステナンシ・アクセスに対してサポートされます。ただし、バケットAPIは次の操作に制限されます。
- DeleteBucket
- GetLocation
- HeadBucket
- GetService (すべてのバケットをリスト)
- ListObjects
バケットを作成する
PutBucketは、OCI S3 APIで仮想ホスト・スタイルをサポートするクロステナンシ操作ではサポートされていません。テナンシをまたいだオブジェクト・ストレージ・リソースにアクセスする方法の詳細は、テナンシ間のオブジェクト・ストレージ・リソースにアクセスを参照してください。