この操作は、既存のオブジェクトからデータをコピーしてフラグメントをアップロードします。
注意事項
1 GB を超えるオブジェクトをコピーする場合は、
upload-part-copyコマンドを使用する必要があります。1 回の操作で 1 GB 未満のオブジェクトをコピーする場合は、「copy-object」をご参照ください。ソースバケットと送信先バケットは、同じリージョン内に存在している必要があります。
この操作を使用してフラグメントをアップロードする前に、まず
initiate-multipart-uploadコマンドを呼び出してアップロード ID を取得する必要があります。
権限
デフォルトでは、Alibaba Cloud アカウント (root ユーザー) はすべての権限を持ちます。Alibaba Cloud アカウント配下の RAM ユーザーまたは RAM ロールには、デフォルトでいかなる権限も付与されていません。Alibaba Cloud アカウントまたはアカウント管理者は、RAM ポリシーまたはバケットポリシーを通じて操作権限を付与する必要があります。
|
API |
アクション |
説明 |
|
UploadPartCopy |
|
既存のオブジェクトからデータをコピーしてフラグメントをアップロードする際に、ソースオブジェクト内のデータを読み取ります。 |
|
|
既存のオブジェクトからデータをコピーしてフラグメントをアップロードする際に、送信先オブジェクトにデータを書き込みます。 |
|
|
|
既存のオブジェクトからデータをコピーしてフラグメントをアップロードする際に、versionId でオブジェクトのバージョンを指定した場合、指定されたバージョンのソースオブジェクトを読み取るための権限が必要です。 |
構文
ossutil api upload-part-copy --bucket value --key value --copy-source value --part-number value --upload-id value [flags]パラメーター | タイプ | 説明 |
--bucket | string | 送信先バケットの名前です。 |
--key | string | 送信先オブジェクトの完全なパスです。 |
--copy-source | string | コピー操作のソースアドレスです(ソースに対する読み取り権限が必要です)。形式は |
--copy-source-if-match | string | ソースオブジェクトの ETag が指定された ETag と一致する場合にのみ、フラグメントをコピーします。一致しない場合は、412 Precondition Failed エラーが返されます。 |
--copy-source-if-modified-since | string | 指定された時刻以降にソースオブジェクトが変更されている場合にのみ、フラグメントをコピーします。そうでない場合は、304 Not Modified エラーが返されます。 |
--copy-source-if-none-match | string | ソースオブジェクトの ETag が指定された ETag と一致しない場合にのみ、フラグメントをコピーします。一致する場合は、304 Not Modified エラーが返されます。 |
--copy-source-if-unmodified-since | string | 指定された時刻以降にソースオブジェクトが変更されていない場合にのみ、フラグメントをコピーします。そうでない場合は、412 Precondition Failed エラーが返されます。 |
--copy-source-range | string | コピーするソースオブジェクトのバイト範囲です。 |
--part-number | string | フラグメント番号です。マルチパートアップロード内の各フラグメントに対して一意である必要があります。 |
--upload-id | string | マルチパートアップロードのアップロード ID です。 |
upload-part-copyコマンドは、UploadPartCopyAPI オペレーションをラップしています。API パラメーターの詳細については、「UploadPartCopy」ドキュメントをご参照ください。サポートされているグローバルコマンドラインオプションの詳細については、「グローバルコマンドラインオプション」をご参照ください。
使用例
srcbucketバケット内のsrcobjectの現在のバージョンからデータをコピーしてフラグメントをアップロードします。ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1データをコピーしてフラグメントをアップロードし、出力を JSON 形式でフォーマットします。
ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1 --output-format jsonデータをコピーしてフラグメントをアップロードし、出力を YAML 形式でフォーマットします。
ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1 --output-format yamlソースオブジェクトの特定のバイト範囲(0 ~ 9)をコピーしてフラグメントをアップロードします。
ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1 --copy-source-range bytes=0-9ソースオブジェクト
srcobjectの ETag が123と一致する場合にのみ、データをコピーしてフラグメントをアップロードします。ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1 --copy-source-if-match 123ソースオブジェクト
srcobjectが"Mon, 11 May 2020 08:16:23 GMT"以降に変更されていない場合にのみ、データをコピーしてフラグメントをアップロードします。ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1 --copy-source-if-unmodified-since "Mon, 11 May 2020 08:16:23 GMT"