Nesnenin tüm parçaları yüklendikten sonra çok parçalı yükleme görevini tamamlar.
Notlar
CompleteMultipartUpload işlemine çağrı yaptığınızda, her bir parçanın parça numarası ve varlık etiketi (ETag) dahil olmak üzere geçerli tüm parçaların eksiksiz bir listesini sağlamanız gerekir. Object Storage Service (OSS) parça listesini aldıktan sonra her bir parçanın geçerliliğini sırayla doğrular. Tüm parçalar doğrulandıktan sonra OSS bu parçaları birleştirerek eksiksiz bir nesne oluşturur.
-
Her parçanın boyutunu onaylayın
CompleteMultipartUpload işlemine çağrı yaptığınızda OSS, son parça hariç her bir parçanın boyutunun 100 KB veya daha büyük olup olmadığını kontrol eder ve parça listesinde belirtilen her parçanın parça numarası ile ETag değerini doğrular. Bu nedenle, bir parça yüklendiğinde istemcinin yalnızca parçanın numarasını değil, sunucudan döndürülen parçanın ETag değerini de kaydetmesi gerekir.
-
İstekleri yönetin
OSS'nin bir CompleteMultipartUpload isteğini işlemesi belirli bir süre alabilir. Bu süre içinde istemcinin bağlantısı kesilirse OSS isteği işlemeye devam eder.
-
PartNumber
OSS, CompleteMultipartUpload işlemine çağrı yaptığınızda PartNumber değerini doğrular.
PartNumber değeri 1 ile 10000 arasında olabilir. İstekte listelenen parça numaraları ardışık olmak zorunda değildir ancak artan sırada sıralanmalıdır. Örneğin, ilk parçanın numarası 1 ise ikinci parçanın numarası 5 olabilir.
-
UploadId
Bir nesne, bağımsız yükleme kimliklerine sahip birden fazla yükleme göreviyle yüklenebilir. Bir yükleme görevi tamamlandığında ilgili yükleme kimliği geçersiz hale gelir ancak diğer yükleme görevlerinin kimlikleri etkilenmez.
-
x-oss-server-side-encryption
InitiateMultipartUpload isteğinde x-oss-server-side-encryption başlığı belirtilmişse bu başlık CompleteMultipartUpload isteğine verilen yanıtta döndürülür. Yanıttaki x-oss-server-side-encryption başlığının değeri, nesnenin OSS sunucusunda şifrelenmek için kullanılan yöntemi gösterir.
Sürüm Oluşturma
Nesnenin yüklendiği paket için sürüm oluşturma etkinleştirildiğinde CompleteMultipartUpload işlemini kullanarak nesnenin çok parçalı yükleme görevini tamamlayabilirsiniz. Bu durumda OSS nesne için benzersiz bir sürüm kimliği oluşturur ve bu kimliği yanıtta x-oss-version-id başlığı olarak döndürür.
İzinler
Varsayılan olarak bir 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 Paket İlkesi aracılığıyla vermelidir.
|
API |
Eylem |
Açıklama |
|
CompleteMultipartUpload |
|
Parçaları bir nesnede birleştirir. |
|
|
Parçaları bir nesnede birleştirirken x-oss-tagging üzerinden nesne etiketleri belirtiyorsanız bu izin gereklidir. |
İstek sözdizimi
POST /ObjectName?uploadId=UploadId HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Content-Length: Size
Authorization: Signature
<CompleteMultipartUpload>
<Part>
<PartNumber>PartNumber</PartNumber>
<ETag>ETag</ETag>
</Part>
...
</CompleteMultipartUpload>
İstek parametreleri
CompleteMultipartUpload isteğinde encoding-type parametresini yapılandırabilirsiniz. OSS, yanıttaki nesne adını kodlamak için belirtilen kodlama türünü kullanır.
Parametre | Tür | Açıklama |
encoding-type | String | Yanıttaki nesne adının kodlama türü. Yalnızca URL kodlaması desteklenir. Nesne adı UTF-8 ile kodlanmış karakterler içerebilir. Ancak XML 1.0 standardı, ASCII değeri 0 ile 10 arasında olan karakterler gibi kontrol karakterlerini ayrıştırmak için kullanılamaz. Yanıttaki nesne adını kodlamak için bu parametreyi yapılandırabilirsiniz. Varsayılan olarak bu başlık boş bırakılır. Geçerli değer: url. |
İstek üstbilgileri
Üstbilgi | Tür | Gerekli | Açıklama |
x-oss-forbid-overwrite | String | Hayır | CompleteMultipartUpload işlemine çağrı yaptığınızda aynı ada sahip nesnenin üzerine yazılıp yazılmayacağını belirtir.
Not
|
x-oss-complete-all | String | Hayır | Geçerli yükleme kimliği kullanılarak yüklenen tüm parçaların listelenip listelenmeyeceğini belirtir. Geçerli değer: yes.
|
Host ve Date gibi CompleteMultipartUpload isteklerinde yer alan ortak istek üstbilgileri hakkında daha fazla bilgi için bkz. Ortak HTTP üstbilgileri.
İstek öğeleri
Öğe | Tür | Açıklama |
CompleteMultipartUpload | Kapsayıcı | CompleteMultipartUpload isteğinin içeriğini depolayan kapsayıcı. Alt düğümler: Part. Üst düğümler: yok. |
ETag | String | Parçalar yüklendikten sonra OSS tarafından döndürülen ETag değerleri. Üst düğümler: Part. |
Part | Kapsayıcı | Yüklenen parçaları depolayan kapsayıcı. Alt düğümler: ETag ve PartNumber. Üst düğümler: CompleteMultipartUpload. |
PartNumber | Integer | Parça sayısı. Üst düğümler: Part. |
Yanıt öğeleri
Öğe | Tür | Açıklama |
Bucket | String | Geri yüklemek istediğiniz nesneyi içeren paketin adı. Üst düğümler: CompleteMultipartUploadResult. |
CompleteMultipartUploadResult | Kapsayıcı | CompleteMultipartUpload isteğinin sonuçlarını depolayan kapsayıcı. Alt düğümler: Bucket, Key, ETag ve Location. Üst düğümler: yok. |
ETag | String | Bir nesne oluşturulduğunda oluşturulan ETag. ETag'ler nesnelerin içeriğini tanımlamak için kullanılır. Bir nesne CompleteMultipartUpload işlemi çağrılarak oluşturulduysa ETag değeri nesne içeriğinin MD5 karması değil, belirli bir kurala göre hesaplanan benzersiz bir değerdir. Not Bir nesnenin ETag'i nesne içeriğinin değiştirilip değiştirilmediğini kontrol etmek için kullanılabilir. Ancak veri bütünlüğünü doğrulamak için nesnenin ETag değeri yerine nesnenin MD5 karmasını kullanmanızı öneririz. Üst düğümler: CompleteMultipartUploadResult. |
Location | String | Yüklenen nesneye erişmek için kullanılan URL. Üst düğümler: CompleteMultipartUploadResult. |
Key | String | Yüklenen nesnenin adı. Üst düğümler: CompleteMultipartUploadResult. |
EncodingType | String | Yanıttaki nesne adının kodlama türü. Bu parametre istekte belirtilirse nesne adı yanıtta kodlanır. Üst düğümler: Kapsayıcı. |
Örnekler
-
Sürümsüz bir pakette bir nesnenin çok parçalı yükleme görevini tamamlayın
Örnek istekler
POST /multipart.data?uploadId=0004B9B2D2F7815C432C9057C031****&encoding-type=url HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Content-Length: 1056 Date: Fri, 24 Feb 2012 10:19:18 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <CompleteMultipartUpload> <Part> <PartNumber>1</PartNumber> <ETag>"3349DC700140D7F86A0784842780****"</ETag> </Part> <Part> <PartNumber>5</PartNumber> <ETag>"8EFDA8BE206636A695359836FE0A****"</ETag> </Part> <Part> <PartNumber>8</PartNumber> <ETag>"8C315065167132444177411FDA14****"</ETag> </Part> </CompleteMultipartUpload>Örnek başarılı yanıt
HTTP/1.1 200 OK Server: AliyunOSS Content-Length: 329 Content-Type: Application/xml Connection: keep-alive x-oss-request-id: 594f0751-3b1e-168f-4501-4ac71d21**** Date: Fri, 24 Feb 2012 10:19:18 GMT <?xml version="1.0" encoding="UTF-8"?> <CompleteMultipartUploadResult xmlns="http://doc.oss-cn-hangzhou.aliyuncs.com"> <EncodingType>url</EncodingType> <Location>http://oss-example.oss-cn-hangzhou.aliyuncs.com /multipart.data</Location> <Bucket>oss-example</Bucket> <Key>multipart.data</Key> <ETag>"B864DB6A936D376F9F8D3ED3BBE540****"</ETag> </CompleteMultipartUploadResult> -
Sürümlü bir pakette bir nesnenin çok parçalı yükleme görevini tamamlayın
Örnek istekler
POST /multipart.data?uploadId=63C06A5CFF6F4AE4A6BB3AD7F01C**** HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Content-Length: 223 Date: Tue, 09 Apr 2019 07:01:56 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <CompleteMultipartUpload> <Part> <PartNumber>1</PartNumber> <ETag>"25A9F4ABFCC05743DF6E2C886C56****"</ETag> </Part> <Part> <PartNumber>5</PartNumber> <ETag>"25A9F4ABFCC05743DF6E2C886C56****"</ETag> </Part> </CompleteMultipartUpload>Örnek başarılı yanıt
HTTP/1.1 200 OK Server: AliyunOSS Content-Length: 314 Content-Type: Application/xml Connection: keep-alive x-oss-version-id: CAEQMxiBgID6v86D0BYiIDc3ZDI0YTBjZGQzYjQ2Mjk4OWVjYWNiMDljYzhlN**** x-oss-request-id: 5CAC4364B7AEADE017000662 Date: Tue, 09 Apr 2019 07:01:56 GMT <?xml version="1.0" encoding="UTF-8"?> <CompleteMultipartUploadResult> <Location>http://oss-example.oss-cn-hangzhou.aliyuncs.com/multipart.data</Location> <Bucket>oss-example</Bucket> <Key>multipart.data</Key> <ETag>"097DE458AD02B5F89F9D0530231876****"</ETag> </CompleteMultipartUploadResult>
OSS SDK'ları
CompleteMultipartUpload işlemine çağrı yapmak için aşağıdaki programlama dillerine ait OSS SDK'larını kullanabilirsiniz:
ossutil
CompleteMultipartUpload işlemine karşılık gelen ossutil komutu hakkında bilgi için bkz. complete-multipart-upload.
Hata kodları
Hata kodu | HTTP durum kodu | Açıklama |
InvalidDigest | 400 | İstekteki Content-MD5 değeri OSS tarafından hesaplanan MD5 karmasından farklıdır. Veri iletimi sırasında hataları önlemek için istekte Content-MD5 değerini ekleyebilirsiniz. OSS yüklenen verilerin MD5 karmasını hesaplar ve bunu istekteki Content-MD5 değeriyle karşılaştırır. |
FileAlreadyExists | 409 | Olası nedenler:
|