UploadPartCopy, bir UploadPart isteğine x-oss-copy-source üstbilgisini ekleyerek mevcut bir nesnenin verilerini parça olarak kopyalar.
Kullanım notları
1 GB'tan büyük dosyaları kopyalamak için UploadPartCopy kullanın. 1 GB'tan küçük dosyalar için CopyObject işlemini kullanın.
UploadPartCopy kullanırken aşağıdaki hususlara dikkat edin:
Kaynak ve hedef paketler aynı bölgede bulunmalıdır.
Önce InitiateMultipartUpload çağrısı yaparak bir yükleme kimliği (upload ID) alın.
InitiateMultipartUpload isteğinde x-oss-server-side-encryption üstbilgisini ayarlarsanız yüklenen parça şifrelenir. UploadPart yanıtı, kullanılan şifreleme algoritmasıyla birlikte bu üstbilgiyi döndürür. Ayrıntılar için bkz. InitiateMultipartUpload.
Son parça hariç tüm parçaların boyutu 100 KB'tan büyük olmalıdır. Parça boyutları yalnızca CompleteMultipartUpload çağrıldığında doğrulanır.
İzinler
Varsayılan olarak bir Alibaba Cloud hesabının tam yetkileri vardır. Bir Alibaba Cloud hesabı altındaki RAM kullanıcılarının veya RAM rollerinin varsayılan olarak herhangi bir izni yoktur. Alibaba Cloud hesabı veya hesap yöneticisi, RAM ilkeleri veya Paket İlkesi aracılığıyla işlem izinleri vermelidir.
|
API |
Eylem |
Açıklama |
|
UploadPartCopy |
|
Mevcut bir nesneden veri kopyalayarak parça yüklediğinizde kaynak nesnedeki verileri okur. |
|
|
Mevcut bir nesneden veri kopyalayarak parça yüklediğinizde hedef nesneye veri yazar. |
|
|
|
Mevcut bir nesneden veri kopyalayarak parça yüklerken versionId aracılığıyla nesne sürümünü belirtirseniz kaynak nesnenin belirtilen sürümünü okumak için bu izin gereklidir. |
Sürüm Oluşturma
Varsayılan olarak UploadPartCopy, kaynak nesnenin geçerli sürümünden kopyalama yapar. Belirli bir sürümü kopyalamak için x-oss-copy-source içinde versionId alt kaynağını dahil edin. Örnek: x-oss-copy-source : /SourceBucketName/SourceObjectName?versionId=111111.
SourceObjectName URL kodlamalı olmalıdır. Yanıt, kopyalanan nesnenin versionId değerini x-oss-copy-source-version-id üstbilgisinde döndürür.
versionId belirtilmezse ve geçerli sürüm bir silme işaretçisi ise OSS 404 Not Found döndürür. Belirtilen versionId bir silme işaretçisini gösteriyorsa OSS 400 Bad Request döndürür.
Ölçümleme ve faturalama
UploadPartCopy çağrısı yaptığınızda kaynak nesne Seyrek Erişim (IA) depolama sınıfını kullanıyorsa veri alma ücretleri uygulanır. Kaynak nesne Arşiv depolama sınıfını kullanıyor, RestoreObject aracılığıyla geri yüklenmemişse ve paket için Arşiv nesnelerinin gerçek zamanlı erişimi etkinleştirilmişse Arşiv nesnelerinin gerçek zamanlı erişimine ilişkin veri alma ücretleri uygulanır. Ücretler kaynak pakete yansıtılır. Ayrıntılar için bkz. Veri işleme ücretleri.
İstek sözdizimi
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
İstek üstbilgileri
Ortak istek üstbilgilerine ek olarak UploadPartCopy, kaynak nesneyi ve kopyalama aralığını belirtmek için aşağıdaki üstbilgileri kullanır.
|
Ad |
Tür |
Açıklama |
|
x-oss-copy-source |
Dize |
Kopyalanacak kaynak nesne. Okuma izni gereklidir. Varsayılan değer: Yok |
|
x-oss-copy-source-range |
Dize |
Kaynak nesneden kopyalanacak bayt aralığı. Örneğin, bytes=0-9 ilk 10 baytı kopyalar. Varsayılan değer: Yok
|
Aşağıdaki üstbilgiler x-oss-copy-source içinde belirtilen kaynak nesne için geçerlidir.
|
Ad |
Tür |
Açıklama |
|
x-oss-copy-source-if-match |
Dize |
Nesne yalnızca ETag değeri belirtilen değerle eşleşiyorsa kopyalanır. Aksi takdirde 412 Precondition Failed döndürülür. Varsayılan değer: Yok |
|
x-oss-copy-source-if-none-match |
Dize |
Nesne yalnızca ETag değeri belirtilen değerden farklıysa kopyalanır. Aksi takdirde Varsayılan değer: Yok |
|
x-oss-copy-source-if-unmodified-since |
Dize |
Nesne yalnızca belirtilen zamandan bu yana değiştirilmediyse kopyalanır. Aksi takdirde 412 Precondition Failed döndürülür. Varsayılan değer: Yok |
|
x-oss-copy-source-if-modified-since |
Dize |
Nesne yalnızca belirtilen zamandan bu yana değiştirildiyse kopyalanır. Aksi takdirde 304 Not Modified döndürülür. Varsayılan değer: Yok Biçim: GMT. Örnek: Fri, 13 Nov 2015 14:47:53 GMT |
Örnekler
-
İstek örneği
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-6291756Yanıt örneği
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> -
Belirtilen versionId ile istek örneği
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****Yanıt örneği
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
Bu işlem için SDK'lar:
ossutil komut satırı arabirimi
UploadPartCopy için ossutil komutu upload-part-copy şeklindedir.
Hata kodları
|
|
|
|
|
|
|
|