Oracle Cloud Infrastructureドキュメント

Amazon S3互換性API

「Amazon S3互換性API」を使用すると、顧客は既存のAmazon S3ツール(SDKクライアントなど)を引き続き使用でき、パートナはオブジェクト・ストレージで動作するようにアプリケーションを最小限に変更できます。 「Amazon S3互換性API」および「オブジェクト・ストレージ」のデータセットは、共通です。 「Amazon S3互換性API」を使用して「オブジェクト・ストレージ」にデータが書き込まれる場合、そのデータはネイティブ「オブジェクト・ストレージ」 APIを使用して逆に読み取ることができます。

オブジェクト・ストレージ APIと「Amazon S3互換性API」の違い

Oracle Cloud InfrastructureとAmazon S3によって提供されるオブジェクト・ストレージ・サービスは、同様の概念と用語を使用します。 どちらの場合も、データはバケットにオブジェクトとして格納されます。 違いは、オブジェクトを扱うための機能とツールの実装にあります。

以下は、2つのストレージ・テクノロジの違いを示しています:

  • コンパートメント

    Amazon S3はコンパートメントを使用しませんが、「Amazon S3互換性API」を使用して作成されたバケットは、Oracle Cloud Infrastructureテナンシのルート・コンパートメントに作成されます。

  • グローバル・バケット・ネームスペース

    オブジェクト・ストレージはグローバル・バケット・ネームスペースを使用しません。 バケット名はネームスペースのコンテキスト内で一意である必要がありますが、バケット名はネームスペース間またはリージョン間で繰り返すことができます。 各テナントは、リージョン内のすべてのコンパートメントにまたがる1つのデフォルト・ネームスペースに関連付けられます。

  • 暗号化

    Oracle Cloud Infrastructure Object Storageサービスは、デフォルトですべてのデータを暗号化します。 APIを使用して暗号化をオンまたはオフにすることはできません。

  • オブジェクトレベルのアクセス制御リスト(ACL)

    Oracle Cloud Infrastructureはオブジェクトに対してACLを使用しません。 代わりに、IAMポリシーは、コンパートメント、バケット、およびオブジェクトへのアクセスを管理するために使用されます。

詳細は、「オブジェクト・ストレージ・サービスの概要」を参照してください。

「Amazon S3互換性API」サポート

「Amazon S3互換性API」サポートは、バケット・レベルとオブジェクトレベルで提供されます。

バケットAPI

次のバケットAPIがサポートされています:

オブジェクトAPI

次のオブジェクトAPIがサポートされています:

タギングAPIs

次のタギングAPIがサポートされています:

オブジェクト・ストレージへのアプリケーション・アクセスの有効化

Amazon S3からオブジェクト・ストレージへのアプリケーション・アクセスを有効にするには、Oracle Cloud Infrastructureへのアクセスを設定し、アプリケーションを変更する必要があります。

Oracle Cloud Infrastructureへのアクセスを設定する:

アプリケーションの変更:

  • アプリケーションの新しいエンドポイントを構成します。 例えば: mynamespace.compat.objectstorage.us-phoenix-1.oraclecloud.com

  • ターゲット・リージョンをOracle Cloud Infrastructureリージョンの1つとして設定します。

    ノート

    ターゲット・リージョン名を正しいOracle Cloud Infrastructureリージョン名に設定できない場合、リージョンをus-east-1に設定するか、または空白のままにする必要があります。
    この構成を使用することで、Oracle Cloud Infrastructureホーム・リージョンのAmazon S3互換性APIのみを使用できます。

  • 「Amazon S3互換性APIキー」を使用するようにアプリケーションを構成します。
  • 仮想化ホスト・スタイルURLを使用していないことを確認してください。これはサポートされません。

この時点で、オブジェクト・ストレージへのアクセスを開始できます。

サポートされているAmazon S3クライアント

「Java用AWS SDK」クライアントには適格サポートが提供されています。

次に、Java (https://aws.amazon.com/documentation/sdk-for-java/)用のAWS SDKを「オブジェクト・ストレージ」 Amazon S3互換のエンドポイントと対話するように構成する例を示します:

// Get S3 credentials from the console and put them here
AWSCredentialsProvider credentials = new AWSStaticCredentialsProvider(new BasicAWSCredentials(
"ocid1.credential.oc1..anEXAMPLE",
"anEXAMPLE="));

// The name of your tenancy
String tenancy = "tenancy";

// The region to connect to
String region = "us-ashburn-1";

// Create an S3 client pointing at the region
String endpoint = String.format("%s.compat.objectstorage.%s.oraclecloud.com",tenancy,region);
AwsClientBuilder.EndpointConfiguration endpointConfiguration = new AwsClientBuilder.EndpointConfiguration(endpoint, region);
AmazonS3 client = AmazonS3Client.builder()
.standard()
.withCredentials(credentials)
.withEndpointConfiguration(endpointConfiguration)
.disableChunkedEncoding()
.enablePathStyleAccess()
.build();

「Amazon S3互換性API」要件

「Amazon S3互換性API」を使用するには、まず「Amazon S3互換性APIキー」を作成する必要があります。

必要なキーを生成したら、「Amazon S3互換性API」を使用してOracle Cloud Infrastructureのオブジェクト・ストレージにアクセスできます。 詳細は、APIリファレンスに関する項を参照してください。