OSS は、Amazon S3 から Alibaba Cloud OSS へのシームレスなデータ移行を可能にする S3 API 互換性を提供します。 データが Amazon S3 から OSS に移行された後も、S3 API を使用して OSS にアクセスできます。ユーザーは S3 クライアントアプリケーションを次のように設定するだけでアクセスができます。

  1. OSS のプライマリアカウントとサブアカウントの AccessKeyId と AccessKeySecret を取得し、取得した AccessKeyID と AccessKeySecret を、使用しているクライアントと SDK に設定します。
  2. OSS エンドポイントへのクライアント接続をするのに、エンドポイントを設定します。詳しくは、 「リージョンおよび エンドポイント」をご参照ください。

移行手順

移行手順の詳細については、「OssImport を使用したデータの移行」をご参照ください。

移行後に S3 API を使用して OSS へアクセス

S3 から OSS への移行後、 S3 API を使用して OSS にアクセスする場合は、次の点に注意してください。

  • パススタイルと仮想ホストスタイル

    仮想ホストスタイルは、バケットをホストヘッダーに配置することで OSS へのアクセスをサポートします。セキュリティ上の理由から、OSS は仮想ホストタイプのアクセスのみをサポートします。 そのため、S3 から OSS への移行後、クライアントアプリケーションの設定が必要になります。一部の S3 ツールは既定ではパススタイルのアクセスを使用し、適切な設定が必要となります。設定が誤っていると、OSS はエラーを報告してアクセスを禁止することがあります。

  • OSS の権限定義は、S3 のものとまったく同じではありません。 移行後に必要に応じて権限を調整できます。 両者の主な違いについては、次の表をご参照ください。

    • 違いについての詳細は、「OSS アクセス」をご参照ください。
    • OSS は、S3 で、非公開、公開読み取り、および公開読み書きの 3 つの ACL 固定モードのみをサポートします。
    項目 Amazon S3 のアクセス許可 permissions Amazon S3 Alibaba Cloud OSS
    Bucket 読み取り バケットに対するリスト権限あり バケット内のすべてのオブジェクトについて、そのオブジェクトに対してオブジェクト権限が設定されていない場合、そのオブジェクトは読み取り可能です。
    WRITE バケット内のオブジェクトは書き込み可能、または上書き可能です。
    • バケット内に存在しないオブジェクトに対し、書き込み可能です。
    • バケット内に存在するオブジェクトにオブジェクト権限が設定されていない場合、そのオブジェクトは上書き可能です。
    • マルチパーツアップロードの開始は許可されています。
    READ_ACP バケットの ACL を読み取ります。 バケットの ACL を読み取ります。 バケット所有者と許可されたサブアカウントのみが、バケットの ACL を読み取る許可があります。
    WRITE_ACP バケットの ACL を設定します。 バケットの ACL を設定します。 バケット所有者と許可されたサブアカウントだのみが、バケットの ACL を設定する権限があります。
    Object 読み取り オブジェクトは読み取り可能です。 オブジェクトは読み取り可能です。
    WRITE 利用不可 オブジェクトは上書き可能です。
    READ_ACP オブジェクトの ACL を読み取ります。 オブジェクトの ACL を読み取ります。 バケット所有者と許可されたサブアカウントのみが、オブジェクトの ACL を読み取る許可があります。
    WRITE_ACP オブジェクトの ACL を設定します。 オブジェクトの ACL を設定します。 バケット所有者と許可されたサブアカウントのみが、オブジェクトの ACL を設定する権限があります。
  • ストレージクラス

    OSSは、Amazon、S3 の STANDARD、STANDARD_IA、および GLACIER にそれぞれ対応する、Standard、IA、および Archive ストレージクラスをサポートしています。

    Amazon S3 とは異なり、OSS はオブジェクトをアップロードする際、ストレージクラスを直接指定することはサポートしていません。オブジェクトのストレージクラスは、バケットのストレージクラスによって決定されます。 OSS は、Standard、IA、および Archive の 3 つのバケットストレージクラスをサポートしています。 ライフサイクルルールを使用し、ストレージクラス間でオブジェクトを自動的に移行できます。

    OSS でアーカイブオブジェクトを読み取るには、まず復元リクエストを出して復元します。S3 とは異なり、OSS では復元された (アクティブな)コピーの有効期間を設定できません。そのため、OSSでは S3 API で設定された有効期間 (日数) は無視されます。 the S3 API. 復元された状態は既定では 1 日続き、最大で 7 日間まで延長できます。 その後、オブジェクトは再び停止状態になります。

  • ETag
    • PUT リクエストを使用してアップロードされたオブジェクトの場合、OSS オブジェクトの ETag と Amazon S3 オブジェクトの ETag は、大文字と小文字が区別されます。ETag は OSS オブジェクトの場合は大文字、S3 オブジェクトの場合は小文字です。クライアントに ETag 検証がある場合は、大文字と小文字を区別しないでください。

    • マルチパーツアップロードによってアップロードされたオブジェクトの場合、OSS は S3 とは異なる ETag 計算方法を使用します。

S3 API と互換性がある操作

  • バケットオペレーション
    • バケットの削除
    • バケットの取得 (オブジェクトの列挙)
    • バケットの ACL の取得
    • バケットのライフサイクルの取得
    • バケットの保存先の取得
    • バケットログの取得
    • バケットヘッダーの作成
    • バケットの配置
    • バケットの ACL の配置
    • バケットのライフサイクルの配置
    • バケットログの配置
  • オブジェクト操作
    • 1 つのオブジェクトの削除
    • 複数のオブジェクトの削除
    • オブジェクトの取得
    • オブジェクトの ACL の取得
    • オブジェクトヘッダーの作成
    • ポストオブジェクト
    • オブジェクトの配置
    • オブジェクトコピーの配置
    • オブジェクト ACL の配置
  • マルチパーツ操作
    • マルチパーツアップロードの中止
    • 完全なマルチパーツアップロード
    • マルチパーツアップロードの開始
    • パーツ一覧
    • パーツのアップロード
    • パーツのコピーのアップロード