このトピックでは、S3 と互換性のある OSS API、および OSS と S3 の違いについて説明します。
OSS の S3 互換 API
OSS は、バケット、オブジェクト、およびマルチパート操作に関して、次の S3 API と互換性があります。
標準の S3 プロトコルを使用して API を呼び出す場合、x-oss-process パラメーターは image/ および style/ 処理タイプのみをサポートします。video/ などの他の処理タイプはサポートされていません。
操作タイプ | API |
バケット操作 |
|
オブジェクト操作 |
|
マルチパート操作 |
|
OSS と S3 の違い
OSS と S3 の違いは次のとおりです。
リクエストスタイル
S3 は、パス形式および仮想ホスト形式のリクエストをサポートします。パス形式のリクエストでは、バケット名は URL パスの一部になります。仮想ホスト形式のリクエストでは、バケット名はサブドメインとして使用されます。セキュリティ上の理由から、OSS は仮想ホスト形式のリクエストのみをサポートします。したがって、S3 から OSS に移行した後は、クライアントアプリケーションと S3 ツールが仮想ホスト形式のリクエストを使用するように設定する必要があります。そうしないと、OSS はエラーを報告し、アクセスを拒否します。
ACL 権限の定義
OSS の ACL 権限定義は、S3 のものと完全には一致しません。主な違いは次のとおりです。
レベル
権限
S3
OSS
バケット
READ
バケット内のオブジェクトをリストする権限を付与します。
バケット内のオブジェクトにオブジェクトレベルの権限がない場合、そのオブジェクトは読み取り可能です。
WRITE
バケット内のオブジェクトを書き込むか、上書きする権限を付与します。
バケットにオブジェクトが存在しない場合にオブジェクトを書き込む権限を付与します。
バケット内にオブジェクトが存在するが、オブジェクトレベルの権限がない場合、オブジェクトは上書きできます。
マルチパートアップロードを開始する権限を付与します。
READ_ACP
バケット ACL を読み取る権限を付与します。
バケット ACL を読み取る権限を付与します。バケットのオーナーと承認された RAM ユーザーのみがこの権限を持ちます。
WRITE_ACP
バケット ACL を設定する権限を付与します。
バケット ACL を設定する権限を付与します。バケットのオーナーと承認された RAM ユーザーのみがこの権限を持ちます。
オブジェクト
READ
オブジェクトは読み取り可能です。
オブジェクトは読み取り可能です。
WRITE
N/A
オブジェクトは上書きできます。
READ_ACP
オブジェクト ACL を読み取る権限を付与します。
オブジェクト ACL を読み取る権限を付与します。バケットのオーナーと承認された RAM ユーザーのみがこの権限を持ちます。
WRITE_ACP
オブジェクト ACL を設定する権限を付与します。
オブジェクト ACL を設定する権限を付与します。バケットのオーナーと承認された RAM ユーザーのみがこの権限を持ちます。
重要OSS は、非公開、公開読み取り、公開読み書きの 3 つの S3 ACL のみをサポートします。
ストレージクラス
OSS は、標準、低頻度アクセス (IA)、アーカイブの 3 つのストレージクラスをサポートしています。これらは、Amazon S3 の STANDARD、STANDARD_IA、および GLACIER ストレージクラスに相当します。必要に応じて OSS オブジェクトのストレージクラスを変換できます。
アーカイブオブジェクトのリアルタイムアクセスが有効になっていない場合、オブジェクトを読み取る前に解凍する必要があります。S3 とは異なり、OSS は S3 API で指定された解凍日数を無視します。デフォルトでは、解凍状態は 1 日間保持されます。期間を最大 7 日間まで延長できます。期間が経過すると、オブジェクトは凍結ステータスに戻ります。
ETag
PUT メソッドを使用してアップロードされたオブジェクトの場合、OSS オブジェクトの ETag は大文字ですが、Amazon S3 オブジェクトの ETag は小文字です。クライアントが ETag を検証する場合は、大文字と小文字を区別しないでください。
マルチパートアップロードを使用してアップロードされたオブジェクトの場合、OSS の ETag は S3 の ETag とは異なる方法で計算されます。