全部产品
Search
文档中心

Object Storage Service:UploadPartCopy

更新时间:Dec 06, 2025

Anda dapat memanggil operasi UploadPartCopy dengan menambahkan header permintaan x-oss-copy-source ke permintaan UploadPart. Operasi ini menyalin data dari objek yang ada untuk diunggah sebagai bagian.

Catatan penggunaan

Gunakan UploadPartCopy untuk menyalin file berukuran lebih dari 1 GB. Untuk menyalin file berukuran kurang dari 1 GB dalam satu operasi, lihat CopyObject.

Perhatikan hal-hal berikut saat menggunakan operasi UploadPartCopy:

  • Bucket sumber dan bucket tujuan untuk operasi UploadPartCopy harus berada di wilayah yang sama.

  • Sebelum memanggil operasi ini untuk mengunggah suatu bagian, Anda harus terlebih dahulu memanggil operasi InitiateMultipartUpload untuk mendapatkan ID unggah yang dikeluarkan oleh OSS.

  • Jika Anda menentukan header permintaan x-oss-server-side-encryption saat memanggil operasi InitiateMultipartUpload, bagian yang diunggah akan dienkripsi. Header x-oss-server-side-encryption dikembalikan dalam respons terhadap operasi UploadPart. Nilai header ini menunjukkan algoritma enkripsi sisi server yang digunakan untuk bagian tersebut. Untuk informasi selengkapnya, lihat InitiateMultipartUpload.

  • Untuk unggah multi-bagian, semua bagian kecuali bagian terakhir harus berukuran lebih dari 100 KB. Operasi UploadPart tidak langsung memeriksa ukuran bagian yang diunggah karena tidak dapat menentukan apakah itu bagian terakhir. Pemeriksaan ukuran hanya dilakukan saat operasi CompleteMultipartUpload dipanggil.

Izin

Secara default, Akun Alibaba Cloud memiliki izin penuh. Pengguna RAM atau Peran RAM di bawah Akun Alibaba Cloud tidak memiliki izin apa pun secara default. Akun Alibaba Cloud atau administrator akun harus memberikan izin operasi melalui RAM Policy atau Bucket policies.

API

Action

Definisi

UploadPartCopy

oss:GetObject

Membaca data dalam objek sumber saat Anda mengunggah bagian dengan menyalin data dari objek yang ada.

oss:PutObject

Menulis data ke objek tujuan saat Anda mengunggah bagian dengan menyalin data dari objek yang ada.

oss:GetObjectVersion

Saat mengunggah bagian dengan menyalin data dari objek yang ada, jika Anda menentukan versi objek melalui versionId, izin ini diperlukan untuk membaca versi tertentu dari objek sumber.

Versi

Secara default, operasi UploadPartCopy menyalin data dari versi terkini objek yang ada untuk diunggah sebagai bagian. Anda dapat menyalin data dari versi tertentu objek dengan menyertakan sub-resource versionId dalam header permintaan x-oss-copy-source. Contohnya: x-oss-copy-source: /SourceBucketName/SourceObjectName?versionId=111111.

Catatan

SourceObjectName harus di-URL-encoded. Respons akan mengembalikan versionId objek yang disalin dalam header x-oss-copy-source-version-id.

Jika Anda tidak menentukan versionId dan versi terkini objek yang akan disalin adalah penanda hapus (delete marker), OSS akan mengembalikan error 404 Not Found. Jika Anda menentukan versionId untuk menyalin penanda hapus, OSS akan mengembalikan error 400 Bad Request.

Pengukuran dan penagihan

Saat Anda memanggil operasi UploadPartCopy, jika objek sumber merupakan objek Akses Jarang (IA), biaya pengambilan data untuk objek IA akan dikenakan. Jika objek sumber merupakan objek Arsip yang belum dipulihkan menggunakan operasi RestoreObject dan akses waktu nyata untuk objek Arsip diaktifkan pada bucket tersebut, biaya pengambilan data untuk akses waktu nyata objek Arsip akan dikenakan saat Anda mengakses objek tersebut. Biaya tersebut dibebankan ke bucket sumber. Untuk informasi selengkapnya tentang penagihan, lihat Biaya pemrosesan data.

Sintaksis permintaan

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

Header permintaan

Selain header permintaan umum, permintaan UploadPartCopy menggunakan header permintaan berikut untuk menentukan objek sumber dan rentang salinan.

Nama

Tipe

Deskripsi

x-oss-copy-source

String

Objek sumber yang akan disalin. Anda harus memiliki izin baca pada objek ini.

Nilai default: Tidak ada

x-oss-copy-source-range

String

Rentang objek sumber yang akan disalin. Misalnya, jika Anda mengatur header ini menjadi bytes=0-9, 10 byte pertama objek akan disalin.

Nilai default: Tidak ada

  • Jika Anda tidak menentukan header ini, seluruh objek sumber akan disalin.

  • Jika Anda menentukan header ini, respons akan menyertakan panjang total file dan rentang salinan saat ini. Contohnya, Content-Range: bytes 0-9/44 menunjukkan bahwa panjang total file adalah 44 byte dan rentang yang disalin adalah byte 0 hingga byte 9.

  • Jika rentang yang ditentukan tidak valid, seluruh objek sumber akan disalin, dan respons tidak menyertakan Content-Range.

Header permintaan berikut berlaku untuk objek sumber yang ditentukan oleh x-oss-copy-source.

Nama

Tipe

Deskripsi

x-oss-copy-source-if-match

String

Operasi salin hanya dilakukan jika ETag objek sumber sesuai dengan ETag yang ditentukan. Jika tidak, error 412 Precondition Failed dikembalikan.

Nilai default: Tidak ada

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

String

Jika nilai ETag yang diberikan tidak sesuai dengan ETag objek, file akan ditransfer dan respons 200 OK dikembalikan. Jika sesuai, respons 304 Not Modified dikembalikan.

Nilai default: Tidak ada

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

String

File disalin dan respons 200 OK dikembalikan hanya jika waktu yang ditentukan dalam header ini sama dengan atau lebih baru daripada waktu modifikasi aktual file. Jika tidak, error 412 Precondition Failed dikembalikan.

Nilai default: Tidak ada

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

String

File disalin dan respons 200 OK dikembalikan hanya jika waktu yang ditentukan lebih awal daripada waktu modifikasi aktual file. Jika tidak, respons 304 Not Modified dikembalikan.

Nilai default: Tidak ada

Format: GMT. Contoh: Fri, 13 Nov 2015 14:47:53 GMT

Contoh

  • Contoh permintaan

    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

    Contoh respons

    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>
  • Contoh permintaan dengan versionId yang ditentukan

    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****

    Contoh respons

    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

Kit pengembangan perangkat lunak (SDK) berikut tersedia untuk operasi ini:

Antarmuka baris perintah ossutil

Untuk perintah ossutil yang sesuai dengan operasi UploadPartCopy, lihat upload-part-copy.

Kode error

Kode error

Kode status HTTP

Deskripsi

OperationNotSupported

400

Operasi UploadPartCopy dipanggil untuk bucket dengan kelas penyimpanan Archive.