すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:UploadPartCopy

最終更新日:Dec 06, 2025

UploadPart リクエストに x-oss-copy-source リクエストヘッダーを追加することで、UploadPartCopy 操作を呼び出すことができます。この操作は、既存のオブジェクトからデータをコピーしてパートとしてアップロードします。

注意事項

1 GB を超えるファイルをコピーするには、UploadPartCopy を使用する必要があります。1 GB 未満のファイルを 1 回の操作でコピーするには、「CopyObject」をご参照ください。

UploadPartCopy 操作を使用する際は、次の点にご注意ください:

  • UploadPartCopy 操作のソースバケットと宛先バケットは、同じリージョンにある必要があります。

  • この操作を呼び出してパートをアップロードする前に、InitiateMultipartUpload 操作を呼び出して、OSS によって発行されたアップロード ID を取得する必要があります。

  • InitiateMultipartUpload 操作を呼び出すときに x-oss-server-side-encryption リクエストヘッダーを指定すると、アップロードされたパートは暗号化されます。x-oss-server-side-encryption ヘッダーは、UploadPart 操作のレスポンスで返されます。このヘッダーの値は、パートに使用されるサーバー側暗号化アルゴリズムを示します。詳細については、「InitiateMultipartUpload」をご参照ください。

  • マルチパートアップロードでは、最後のパートを除くすべてのパートが 100 KB を超えている必要があります。UploadPart 操作は、アップロードされたパートが最後のパートであるかどうかを判断できないため、すぐにパートのサイズをチェックしません。サイズは、CompleteMultipartUpload 操作が呼び出されたときにのみチェックされます。

権限

デフォルトでは、Alibaba Cloud アカウントは完全な権限を持っています。Alibaba Cloud アカウント配下の Resource Access Management (RAM) ユーザーまたは RAM ロールは、デフォルトではいかなる権限も持っていません。Alibaba Cloud アカウントまたはアカウント管理者は、RAM ポリシーまたはバケットポリシーを通じて操作権限を付与する必要があります。

API

アクション

定義

UploadPartCopy

oss:GetObject

既存のオブジェクトからデータをコピーしてパートをアップロードする際に、ソースオブジェクトのデータを読み取ります。

oss:PutObject

既存のオブジェクトからデータをコピーしてパートをアップロードする際に、宛先オブジェクトにデータを書き込みます。

oss:GetObjectVersion

既存のオブジェクトからデータをコピーしてパートをアップロードする際に、versionId を通じてオブジェクトのバージョンを指定する場合、指定されたバージョンのソースオブジェクトを読み取るにはこの権限が必要です。

バージョニング

デフォルトでは、UploadPartCopy 操作は、既存のオブジェクトの現在のバージョンからデータをコピーしてパートとしてアップロードします。x-oss-copy-source リクエストヘッダーに versionId サブリソースを含めることで、オブジェクトの特定のバージョンからデータをコピーできます。例:x-oss-copy-source : /SourceBucketName/SourceObjectName?versionId=111111。

説明

SourceObjectName は URL エンコードされている必要があります。レスポンスは、コピーされたオブジェクトの versionId を x-oss-copy-source-version-id ヘッダーで返します。

versionId を指定せず、コピーするオブジェクトの現在のバージョンが削除マーカーである場合、OSS は 404 Not Found を返します。versionId を指定して削除マーカーをコピーする場合、OSS は 400 Bad Request を返します。

課金

UploadPartCopy 操作を呼び出す際、ソースオブジェクトが低頻度アクセス (IA) オブジェクトである場合、IA オブジェクトのデータ取得料金が発生します。ソースオブジェクトが RestoreObject 操作を使用して解凍されていないアーカイブオブジェクトであり、バケットでアーカイブオブジェクトのリアルタイムアクセスが有効になっている場合、オブジェクトにアクセスすると、アーカイブオブジェクトのリアルタイムアクセスに対するデータ取得料金が発生します。料金はソースバケットに請求されます。課金の詳細については、「データ処理料金」をご参照ください。

リクエスト構文

PUT /ObjectName?partNumber=PartNumber&uploadId=UploadId  HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Content-Length: Size
Authorization: SignatureValue
x-oss-copy-source: /SourceBucketName/SourceObjectName
x-oss-copy-source-range: bytes=first-last

リクエストヘッダー

一般的なリクエストヘッダーに加えて、UploadPartCopy リクエストは、ソースオブジェクトとコピー範囲を指定するために次のリクエストヘッダーを使用します。

名前

タイプ

説明

x-oss-copy-source

String

コピーするソースオブジェクト。このオブジェクトに対する読み取り権限が必要です。

デフォルト値:なし

x-oss-copy-source-range

String

コピーするソースオブジェクトの範囲。たとえば、このヘッダーを bytes=0-9 に設定すると、オブジェクトの最初の 10 バイトがコピーされます。

デフォルト値:なし

  • このヘッダーを指定しない場合、ソースオブジェクト全体がコピーされます。

  • このヘッダーを指定した場合、レスポンスにはファイルの合計長と現在のコピーの範囲が含まれます。たとえば、`Content-Range: bytes 0-9/44` は、ファイルの合計長が 44 バイトで、コピーされた範囲がバイト 0 からバイト 9 までであることを示します。

  • 指定された範囲が無効な場合、ソースオブジェクト全体がコピーされ、レスポンスには Content-Range は含まれません。

次のリクエストヘッダーは、x-oss-copy-source で指定されたソースオブジェクトに適用されます。

名前

タイプ

説明

x-oss-copy-source-if-match

String

ソースオブジェクトの ETag が指定された ETag と一致する場合にのみコピー操作が実行されます。それ以外の場合は、412 Precondition Failed エラーが返されます。

デフォルト値:なし

x-oss-copy-source-if-none-match

String

指定された ETag 値がオブジェクトの ETag と一致しない場合、ファイルは転送され、`200 OK` レスポンスが返されます。それ以外の場合は、`304 Not Modified` レスポンスが返されます。

デフォルト値:なし

x-oss-copy-source-if-unmodified-since

String

このヘッダーで指定された時刻がファイルの実際の変更時刻と同じかそれ以降である場合にのみ、ファイルがコピーされ、200 OK が返されます。それ以外の場合は、412 Precondition Failed エラーが返されます。

デフォルト値:なし

x-oss-copy-source-if-modified-since

String

指定された時刻がファイルの実際の変更時刻より前である場合にのみ、ファイルがコピーされ、200 OK が返されます。それ以外の場合は、304 Not Modified が返されます。

デフォルト値:なし

フォーマット:GMT。例:Fri, 13 Nov 2015 14:47:53 GMT

  • リクエスト例

    PUT /multipart.data?partNumber=1&uploadId=0004B9895DBBB6EC98E36  HTTP/1.1
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com
    Content-Length: 6291456
    Date: Wed, 22 Feb 2012 08:32:21 GMT
    Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
    x-oss-copy-source: /oss-example/src-object
    x-oss-copy-source-range: bytes=100-6291756

    レスポンス例

    HTTP/1.1 200 OK
    Server: AliyunOSS
    Connection: keep-alive
    x-oss-request-id: 3e6aba62-1eae-d246-6118-8ff42cd0****
    Date: Thu, 17 Jul 2014 06:27:54 GMT
    
    <?xml version="1.0" encoding="UTF-8"?>
    <CopyPartResult xmlns=”http://doc.oss-cn-hangzhou.aliyuncs.com”>
        <LastModified>2014-07-17T06:27:54.000Z </LastModified>
        <ETag>"5B3C1A2E053D763E1B002CC607C5****"</ETag>
    </CopyPartResult>
  • versionId を指定したリクエスト例

    PUT /multipart.data?partNumber=2&uploadId=63C06A5CFF6F4AE4A6BB3AD7F01C****  HTTP/1.1
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com
    Date: Tue, 09 Apr 2019 07:01:56 GMT
    Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
    x-oss-copy-source: /oss-example/src-object?versionId=CAEQMxiBgMC0vs6D0BYiIGJiZWRjOTRjNTg0NzQ1MTRiN2Y1OTYxMTdkYjQ0****

    レスポンス例

    HTTP/1.1 200 OK
    Server: AliyunOSS
    Connection: keep-alive
    x-oss-copy-source-version-id: CAEQMxiBgMC0vs6D0BYiIGJiZWRjOTRjNTg0NzQ1MTRiN2Y1OTYxMTdkYjQ0****
    x-oss-request-id: 5CAC4364B7AEADE017000660
    Date: Tue, 09 Apr 2019 07:01:56 GMT
    
    <?xml version="1.0" encoding="UTF-8"?>
    <CopyPartResult>
      <LastModified>2019-04-09T07:01:56.000Z</LastModified>
      <ETag>"25A9F4ABFCC05743DF6E2C886C56****"</ETag>
    </CopyPartResult>

SDK

この操作には、次のソフトウェア開発キット (SDK) が利用可能です:

ossutil コマンドラインインターフェイス

UploadPartCopy 操作に対応する ossutil コマンドについては、「upload-part-copy」をご参照ください。

エラーコード

エラーコード

HTTP ステータスコード

説明

OperationNotSupported

400

アーカイブストレージクラスのバケットに対して UploadPartCopy 操作が呼び出されました。