Anda dapat memanggil operasi InitiateMultipartUpload untuk menginisialisasi event unggah multi-bagian sebelum mengunggah data secara bertahap ke Object Storage Service (OSS).
Catatan
Saat Anda memanggil operasi InitiateMultipartUpload, OSS membuat dan mengembalikan upload ID yang unik secara global untuk event unggah multi-bagian tersebut. Gunakan ID ini untuk melakukan operasi terkait, seperti membatalkan atau menanyakan status unggah multi-bagian.
Menginisialisasi unggah multi-bagian tidak memengaruhi objek yang sudah ada dengan nama yang sama.
Saat menghitung signature untuk mengotentikasi operasi InitiateMultipartUpload, tambahkan
?uploadskeCanonicalizedResource.Untuk menginisialisasi event unggah multi-bagian, Anda harus memiliki izin
oss:PutObject. Untuk informasi selengkapnya, lihat Grant custom permissions to a RAM user.
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 |
InitiateMultipartUpload |
| Menginisialisasi tugas unggah multi-bagian. |
| Saat menginisialisasi tugas unggah multi-bagian, jika Anda menentukan tag objek melalui x-oss-tagging, izin ini diperlukan. | |
| Saat mengunggah objek, jika metadata objek berisi X-Oss-Server-Side-Encryption: KMS, kedua izin ini diperlukan. | |
|
Sintaksis permintaan
POST /ObjectName?uploads HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT date
Authorization: SignatureValueHeader permintaan
Permintaan InitiateMultipartUpload mendukung header permintaan HTTP standar seperti Cache-Control, Content-Disposition, Content-Encoding, Content-Type, dan Expires, serta header kustom yang diawali dengan x-oss-meta-. Untuk informasi selengkapnya, lihat PutObject.
Nama | Tipe | Deskripsi |
Cache-Control | String | Menentukan perilaku caching halaman web saat objek diunduh. Untuk informasi selengkapnya, lihat RFC 2616. Nilai default: none |
Content-Disposition | String | Menentukan nama objek saat diunduh. Untuk informasi selengkapnya, lihat RFC 2616. Nilai default: none |
Content-Encoding | String | Menentukan format encoding konten objek saat diunduh. Untuk informasi selengkapnya, lihat RFC 2616. Nilai default: none |
Expires | String | Waktu kedaluwarsa. Untuk informasi selengkapnya, lihat RFC 2616. Nilai default: none |
x-oss-forbid-overwrite | String | Menentukan apakah objek dengan nama yang sama akan ditimpa saat Anda memanggil operasi InitiateMultipartUpload. Jika Pengendalian versi diaktifkan atau ditangguhkan untuk bucket tujuan, header permintaan x-oss-forbid-overwrite tidak berlaku. Dalam kasus ini, objek dengan nama yang sama akan ditimpa.
Mengatur header permintaan x-oss-forbid-overwrite menurunkan performa permintaan per detik (QPS). Jika Anda ingin menggunakan header permintaan x-oss-forbid-overwrite untuk banyak operasi (QPS > 1.000), hubungi dukungan teknis untuk mencegah gangguan bisnis. |
x-oss-server-side-encryption | String | Metode Enkripsi sisi server yang digunakan untuk mengenkripsi setiap bagian objek. Nilai yang valid: AES256, KMS Penting Untuk menggunakan algoritma enkripsi KMS, aktifkan terlebih dahulu Key Management Service (KMS). Jika Anda menentukan header ini dalam permintaan, header ini akan disertakan dalam respons. OSS mengenkripsi setiap bagian yang diunggah menggunakan metode yang ditentukan. Saat Anda mengunduh objek, header x-oss-server-side-encryption akan disertakan dalam respons dan nilainya adalah algoritma enkripsi objek tersebut. |
x-oss-server-side-encryption-key-id | String | ID kunci master pelanggan (CMK) yang dikelola oleh KMS. Header ini hanya berlaku ketika x-oss-server-side-encryption diatur ke KMS. |
x-oss-storage-class | String | Kelas penyimpanan objek. Jika Anda menentukan header ini saat mengunggah objek, objek tersebut akan disimpan dalam kelas penyimpanan yang ditentukan, terlepas dari kelas penyimpanan bucket. Misalnya, jika Anda mengatur x-oss-storage-class ke Standard saat mengunggah objek ke bucket Infrequent Access (IA), objek tersebut akan disimpan sebagai objek Standard. Nilai yang valid:
Untuk informasi selengkapnya, lihat Storage classes. |
x-oss-tagging | String | Tag objek. Anda dapat menentukan beberapa tag untuk satu objek. Contoh: TagA=A&TagB=B Catatan Kunci tag dan nilai harus di-URL-encoded. Jika tag tidak mengandung tanda sama dengan ( |
Parameter permintaan
Anda dapat menentukan parameter encoding-type dalam permintaan untuk mengencode nama objek dalam respons.
Nama | Tipe | Deskripsi |
encoding-type | String | Metode yang digunakan untuk mengencode nama objek dalam respons. Nama objek diencode dalam UTF-8. Namun, standar XML 1.0 tidak mendukung beberapa karakter kontrol, seperti karakter dengan nilai ASCII dari 0 hingga 10. Untuk nama objek yang mengandung karakter kontrol yang tidak didukung oleh XML 1.0, tentukan parameter encoding-type untuk mengencode nama objek dalam respons. Nilai default: none Nilai yang valid: url |
Elemen respons
Setelah OSS menerima permintaan InitiateMultipartUpload, OSS mengembalikan respons dalam format XML. Badan respons berisi elemen Bucket, Key, dan UploadID.
Nama | Tipe | Deskripsi |
InitiateMultipartUploadResult | Kontainer | Kontainer untuk hasil permintaan InitiateMultipartUpload. Node anak: Bucket, Key, UploadId, dan EncodingType Node induk: None |
Bucket | String | Nama bucket untuk event unggah multi-bagian. Node induk: InitiateMultipartUploadResult |
Key | String | Nama objek untuk event unggah multi-bagian. Node induk: InitiateMultipartUploadResult |
UploadId | String | ID unik untuk event unggah multi-bagian. Gunakan ID ini dalam panggilan UploadPart dan CompleteMultipartUpload berikutnya. Node induk: InitiateMultipartUploadResult |
EncodingType | String | Jenis encoding nama objek dalam respons. Jika parameter encoding-type ditentukan dalam permintaan, nama objek dalam respons akan diencode. Node induk: InitiateMultipartUploadResult |
Operasi ini juga mencakup header respons umum. Untuk informasi selengkapnya, lihat Common response headers.
Contoh
Contoh permintaan
POST /multipart.data?uploads HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Wed, 22 Feb 2012 08:32:21 GMT x-oss-storage-class: Archive Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218eContoh respons
HTTP/1.1 200 OK Content-Length: 230 Server: AliyunOSS Connection: keep-alive x-oss-request-id: 42c25703-7503-fbd8-670a-bda01eae**** Date: Wed, 22 Feb 2012 08:32:21 GMT Content-Type: application/xml <?xml version="1.0" encoding="UTF-8"?> <InitiateMultipartUploadResult xmlns="http://doc.oss-cn-hangzhou.aliyuncs.com"> <Bucket>oss-example</Bucket> <Key>multipart.data</Key> <UploadId>0004B9894A22E5B1888A1E29F823****</UploadId> </InitiateMultipartUploadResult>
SDK
Alat baris perintah ossutil
Untuk perintah ossutil yang sesuai dengan operasi ini, lihat initiate-multipart-upload.
Kode error
Kode error | Kode status HTTP | Deskripsi |
InvalidEncryptionAlgorithmError | 400 | Metode Enkripsi sisi server selain AES256, KMS ditentukan. |
InvalidArgument | 400 | Header permintaan x-oss-server-side-encryption ditambahkan saat setiap bagian diunggah. |
InvalidArgument | 400 | Kelas penyimpanan yang ditentukan tidak valid. |
KmsServiceNotEnabled | 403 | Algoritma enkripsi KMS digunakan, tetapi KMS belum diaktifkan di Konsol. |
FileAlreadyExists | 409 | Kemungkinan penyebab kesalahan ini adalah sebagai berikut:
|