Oracle Cloud Infrastructureドキュメント

Amazon S3互換性API

「Amazon S3互換性API」を使用すると、顧客は既存のAmazon S3ツール(SDKクライアントなど)を引き続き使用でき、パートナはObject Storageで動作するようにアプリケーションを最小限に変更できます。 「Amazon S3互換性API」Object Storageのデータセットは一致しています。 「Amazon S3互換性API」を使用してObject Storageにデータを書き込むと、ネイティブのObject Storage APIを使用してデータを読み戻すことができ、その逆も可能です。

Object Storage APIと「Amazon S3互換性API」の違い

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

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

  • コンパートメント

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

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

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

  • 暗号化

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

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

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

詳細は、「Object Storageサービスの概要」を参照してください。

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

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

バケットAPI

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

オブジェクトAPI

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

Tagging APIs

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

Object Storageへのアプリケーション・アクセスの有効化

Amazon S3からObject Storageへのアプリケーション・アクセスを有効にするには、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を使用していないことを確認してください。

この時点で、Object Storageへのアクセスを開始できます。

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

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

Object Storage Amazon S3互換エンドポイントと通信するようにAWS Java SDK (https://aws.amazon.com/documentation/sdk-for-java/)を構成する例を次に示します:

// 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のObject Storageにアクセスできます。 詳細は、APIリファレンスに関する項を参照してください。