Verileri parçalar halinde OSS'e yüklemeden önce çok parçalı bir yüklemeyi başlatmak için InitiateMultipartUpload işlemini çağırın.
Notlar
InitiateMultipartUpload işlemi, genel olarak benzersiz bir yükleme kimliği (upload ID) döndürür. Çok parçalı yüklemeyi iptal etme veya sorgulama gibi sonraki işlemler için bu kimliği kullanın.
Çok parçalı bir yüklemeyi başlatmak, aynı ada sahip mevcut bir nesneyi etkilemez.
InitiateMultipartUpload işleminin kimliğini doğrulamak için imza hesaplarken
?uploadsifadesiniCanonicalizedResourcedeğerine ekleyin.Çok parçalı bir yüklemeyi başlatmak için
oss:PutObjectizni gerekir; bu izni RAM kullanıcısına özel izinler atama bölümünde yapılandırabilirsiniz.
İzinler
Varsayılan olarak Alibaba Cloud hesabı tam yetkilere sahiptir. Bir Alibaba Cloud hesabı altındaki RAM kullanıcıları veya RAM rolleri varsayılan olarak herhangi bir izne sahip değildir. Alibaba Cloud hesabı veya hesap yöneticisi, işlem izinlerini RAM ilkeleri veya Bucket Policy aracılığıyla vermelidir.
|
API |
Eylem |
Açıklama |
|
InitiateMultipartUpload |
|
Çok parçalı yükleme görevlerini başlatır. |
|
|
Çok parçalı bir yükleme görevini başlatırken x-oss-tagging aracılığıyla nesne etiketleri belirtirseniz bu izin gereklidir. |
|
|
|
Bir nesne yüklerken nesne meta verileri X-Oss-Server-Side-Encryption: KMS içeriyorsa bu iki izin gereklidir. |
|
|
|
İstek sözdizimi
POST /ObjectName?uploads HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT date
Authorization: SignatureValue
İstek üstbilgileri
InitiateMultipartUpload; standart HTTP istek üstbilgilerini (Cache-Control, Content-Disposition, Content-Encoding, Content-Type, Expires) ve x-oss-meta- önekiyle başlayan özel üstbilgileri destekler. Bu üstbilgiler PutObject ile aynı kuralları takip eder.
Ad | Tür | Açıklama |
Cache-Control | Dize | Nesne indirildiğinde web sayfası önbelleğe alma davranışını belirtir; tanım için bkz. RFC 2616. Varsayılan değer: none |
Content-Disposition | Dize | Nesne için indirme dosya adını belirtir; tanım için bkz. RFC 2616. Varsayılan değer: none |
Content-Encoding | Dize | Nesnenin içerik kodlamasını belirtir; tanım için bkz. RFC 2616. Varsayılan değer: none |
Expires | Dize | Son kullanma zamanı; tanım için bkz. RFC 2616. Varsayılan değer: none |
x-oss-forbid-overwrite | Dize | Aynı ada sahip mevcut bir nesnenin üzerine yazılıp yazılmayacağını belirtir. Paket için sürüm oluşturma etkinleştirilmiş veya askıya alınmışsa x-oss-forbid-overwrite yoksayılır ve mevcut nesnenin üzerine yazılır.
x-oss-forbid-overwrite ayarlanması QPS performansını düşürür. Yüksek hacimde (QPS > 1.000) x-oss-forbid-overwrite kullanıyorsanız iş kesintilerini önlemek için teknik destekle iletişime geçin. |
x-oss-server-side-encryption | Dize | Nesnenin her bir parçasını şifrelemek için kullanılan sunucu taraflı şifreleme yöntemi. Geçerli değerler: AES256, KMS Önemli KMS şifreleme algoritmasını kullanmak için öncelikle Key Management Service (KMS) hizmetini etkinleştirin. Belirtilirse OSS yüklenen her parçayı belirtilen yöntemle şifreler ve bu üstbilgiyi hem yükleme hem de indirme yanıtlarına dahil eder. İndirme yanıtındaki üstbilgi değeri nesnenin şifreleme algoritmasını gösterir. |
x-oss-server-side-encryption-key-id | Dize | KMS tarafından yönetilen müşteri ana anahtarının (CMK) kimliği. Bu üstbilgi yalnızca x-oss-server-side-encryption değeri KMS olarak ayarlandığında geçerlidir. |
x-oss-storage-class | Dize | Nesnenin depolama sınıfı. Belirtilirse nesne paketin varsayılanından bağımsız olarak bu depolama sınıfını kullanır. Örneğin x-oss-storage-class değerini Standard olarak ayarlamak nesneyi IA pakette bile Standard olarak depolar. Geçerli değerler:
|
x-oss-tagging | Dize | Nesne etiketi. Birden fazla etiket belirtebilirsiniz. Örnek: TagA=A&TagB=B Not Etiket anahtarları ve değerleri URL kodlamalı olmalıdır. Bir etiket eşittir işareti ( |
İstek parametreleri
Yanıttaki nesne adını kodlamak için encoding-type parametresini belirtin.
Ad | Tür | Açıklama |
encoding-type | Dize | Yanıttaki nesne adı için kodlama yöntemi. Nesne adları UTF-8 olarak kodlanır ancak XML 1.0 belirli kontrol karakterlerini (ASCII değerleri 0 ila 10) desteklemez. Bu tür karakterler içeren nesne adlarını kodlamak için bu parametreyi kullanın. Varsayılan değer: none Geçerli değer: url |
Yanıt öğeleri
OSS aşağıdaki öğeleri içeren bir XML yanıtı döndürür:
Ad | Tür | Açıklama |
InitiateMultipartUploadResult | Kapsayıcı | InitiateMultipartUpload sonuçları için kapsayıcı. Alt düğümler: Bucket, Key, UploadId ve EncodingType Üst düğüm: Yok |
Bucket | Dize | Çok parçalı yükleme olayı için paket adı. Üst düğüm: InitiateMultipartUploadResult |
Key | Dize | Çok parçalı yükleme olayı için nesne adı. Üst düğüm: InitiateMultipartUploadResult |
UploadId | Dize | Çok parçalı yükleme olayı için benzersiz kimlik. Sonraki UploadPart ve CompleteMultipartUpload çağrılarında bu kimliği kullanın. Üst düğüm: InitiateMultipartUploadResult |
EncodingType | Dize | Yanıttaki nesne adının kodlama türü. Yalnızca istekte encoding-type parametresi belirtildiğinde mevcuttur. Üst düğüm: InitiateMultipartUploadResult |
Bu işlem ayrıca Ortak yanıt üstbilgilerini döndürür.
Örnekler
-
Örnek istek
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=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e -
Örnek yanıt
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
Bu işlem için SDK'lar:
ossutil komut satırı aracı
İlgili ossutil komutu: initiate-multipart-upload.
Hata kodları
Hata kodu | HTTP durum kodu | Açıklama |
InvalidEncryptionAlgorithmError | 400 | AES256, KMS dışındaki bir sunucu taraflı şifreleme yöntemi belirtilmiştir. |
InvalidArgument | 400 | Her parça yüklenirken x-oss-server-side-encryption istek üstbilgisi eklenmiştir. |
InvalidArgument | 400 | Belirtilen depolama sınıfı geçersiz. |
KmsServiceNotEnabled | 403 | KMS şifreleme algoritması kullanılıyor ancak konsolda KMS etkinleştirilmemiş. |
FileAlreadyExists | 409 | Bu hatanın olası nedenleri şunlardır:
|