Untuk mengunggah data menggunakan unggah multi-bagian, pertama-tama panggil operasi InitiateMultipartUpload guna memulai tugas unggah multi-bagian di OSS.
Catatan penggunaan
Operasi ini mengembalikan ID unggah yang unik secara global dari OSS untuk mengidentifikasi tugas unggah multi-bagian. Anda dapat menggunakan ID ini dalam operasi berikutnya, seperti membatalkan atau mengkueri unggahan tersebut.
Permintaan InitiateMultipartUpload tidak memengaruhi objek yang sudah ada dengan nama yang sama.
Saat menghitung signature otentikasi untuk operasi
InitiateMultipartUpload, Anda harus menambahkan?uploadskeCanonicalizedResource.Untuk memulai tugas unggah multi-bagian, Anda harus memiliki izin
oss:PutObject. Untuk informasi selengkapnya, lihat Berikan kebijakan kustom kepada 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 policies atau Bucket Policy.
|
API |
Action |
Deskripsi |
|
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 mendukung header kustom dengan awalan x-oss-meta-. Untuk informasi selengkapnya, lihat PutObject.
Header | Tipe | Deskripsi |
Cache-Control | String | Menentukan perilaku caching untuk halaman web saat objek diunduh. Untuk informasi selengkapnya, lihat RFC 2616. Nilai default: Tidak ada |
Content-Disposition | String | Menentukan nama objek saat diunduh. Untuk informasi selengkapnya, lihat RFC 2616. Nilai default: Tidak ada |
Content-Encoding | String | Menentukan format encoding konten objek saat diunduh. Untuk informasi selengkapnya, lihat RFC 2616. Nilai default: Tidak ada |
Expires | String | Waktu kedaluwarsa. Untuk informasi selengkapnya, lihat RFC 2616. Nilai default: Tidak ada |
x-oss-forbid-overwrite | String | Menentukan apakah objek dengan nama yang sama boleh ditimpa. Jika Pengendalian versi diaktifkan atau ditangguhkan untuk bucket tujuan, header permintaan x-oss-forbid-overwrite akan diabaikan, dan objek dapat ditimpa.
Menetapkan header permintaan x-oss-forbid-overwrite mengurangi performa permintaan per detik (QPS), sehingga jika Anda memiliki banyak operasi yang memerlukan header permintaan x-oss-forbid-overwrite (QPS>1000), harap hubungi dukungan teknis untuk menghindari dampak pada bisnis Anda. |
x-oss-server-side-encryption | String | Algoritma Enkripsi sisi server untuk setiap bagian objek. Nilai yang valid: AES256, KMS Penting Untuk menggunakan enkripsi KMS, Anda harus mengaktifkan Key Management Service (KMS). Jika Anda menentukan header ini dalam permintaan, OSS menyertakannya dalam respons. OSS mengenkripsi setiap bagian yang diunggah menggunakan algoritma yang ditentukan. Saat Anda mengunduh objek, header x-oss-server-side-encryption disertakan dalam respons, dan nilainya diatur ke 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. Untuk bucket dengan kelas penyimpanan apa pun, jika Anda menentukan kelas penyimpanan saat mengunggah objek, objek tersebut akan disimpan sebagai kelas penyimpanan yang ditentukan. Misalnya, jika Anda mengunggah objek ke bucket Infrequent Access (IA) dan mengatur x-oss-storage-class ke Standard, objek tersebut langsung disimpan sebagai kelas penyimpanan Standard. Nilai yang valid:
Untuk informasi selengkapnya, lihat Kelas penyimpanan. |
x-oss-tagging | String | Menentukan tag untuk objek. Anda dapat menentukan beberapa tag untuk satu objek. Contoh: Catatan Kunci dan nilai tag harus di-encode URL. Jika tag tidak mengandung tanda sama dengan ( |
x-oss-object-worm-mode | String | Mode kebijakan retensi untuk objek. Tetapkan nilainya ke |
x-oss-object-worm-retain-until-date | String | Tanggal kedaluwarsa retensi objek. Nilainya harus dalam format |
Parameter permintaan
Gunakan parameter kueri encoding-type untuk meng-encode kunci objek dalam respons.
Parameter | Tipe | Deskripsi |
encoding-type | String | Menentukan metode encoding untuk kunci objek dalam respons. Hanya encoding URL yang didukung. Kunci objek dalam UTF-8. Namun, standar XML 1.0 tidak mendukung karakter kontrol tertentu, seperti karakter dengan nilai ASCII dari 0 hingga 10. Jika kunci objek mengandung karakter tersebut, tentukan Nilai default: Tidak ada Nilai yang valid: url |
Elemen respons
Setelah OSS menerima permintaan InitiateMultipartUpload, OSS mengembalikan badan respons dalam format XML yang berisi elemen Bucket, Key, dan UploadId.
Elemen | Tipe | Deskripsi |
InitiateMultipartUploadResult | Kontainer | Kontainer untuk hasil permintaan Elemen anak: Bucket, Key, UploadId, dan EncodingType Elemen induk: Tidak ada |
Bucket | String | Nama bucket tempat tugas unggah multi-bagian dimulai. Elemen induk: InitiateMultipartUploadResult |
Key | String | Nama objek untuk tugas unggah multi-bagian. Elemen induk: InitiateMultipartUploadResult |
UploadId | String | ID unik yang mengidentifikasi tugas unggah multi-bagian. ID ini diperlukan untuk pemanggilan berikutnya ke operasi UploadPart dan CompleteMultipartUpload. Elemen induk: InitiateMultipartUploadResult |
EncodingType | String | Tipe encoding yang digunakan dalam respons. Jika Anda menentukan Elemen induk: InitiateMultipartUploadResult |
Operasi ini menggunakan header respons umum. Untuk informasi selengkapnya, lihat Header respons umum.
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
CLI ossutil
Untuk perintah ossutil yang sesuai dengan operasi InitiateMultipartUpload, lihat initiate-multipart-upload.
Kode error
Kode error | Kode status HTTP | Deskripsi |
InvalidEncryptionAlgorithmError | 400 | Algoritma Enkripsi sisi server selain |
InvalidArgument | 400 | Header permintaan |
InvalidArgument | 400 | Kelas penyimpanan yang ditentukan tidak valid. |
KmsServiceNotEnabled | 403 |
|
FileAlreadyExists | 409 | Error ini dikembalikan karena salah satu alasan berikut:
|