Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:CopyObject

Son Güncelleme:Oct 13, 2026

Aynı bölgedeki aynı veya farklı paketler arasında bir nesneyi kopyalamak için CopyObject işlemini kullanabilirsiniz.

Sürüm Oluşturma

Varsayılan olarak, x-oss-copy-source bir nesnenin geçerli sürümünü kopyalar. Belirli bir sürümü kopyalamak için sürüm kimliğini x-oss-copy-source içine ekleyin. Belirtilen kaynak sürüm bir silme işaretçisi ise OSS 404 hatası döndürür; bu durum nesnenin mevcut olmadığını gösterir.

Bir önceki sürümü aynı pakete kopyalayarak o sürümü geçerli sürüm olarak geri yükleyebilirsiniz. OSS daha sonra söz konusu önceki sürümü geçerli sürüm olarak ayarlar.

Hedef paket için sürüm oluşturma etkinleştirilmişse OSS yeni kopyalanan nesne için otomatik olarak benzersiz bir sürüm kimliği oluşturur. Bu sürüm kimliği x-oss-version-id yanıt üstbilgisinde döndürülür. Hedef paket için sürüm oluşturma devre dışı bırakılmışsa veya askıya alınmışsa OSS yeni nesne için null sürüm kimliğine sahip bir sürüm oluşturur. Bu yeni sürüm null sürüm kimliğine sahip mevcut tüm sürümlerin üzerine yazar.

Kısıtlamalar

  • Nesne boyutu sınırları

    • Kaynak ve hedef paketler aynıysa ve kopyalama işlemi sırasında nesnenin şifreleme yöntemini veya depolama sınıfını değiştirmezseniz nesne 5 GB'tan büyük olabilir.

    • Kaynak ve hedef paketler farklıysa ve kopyalama işlemi sırasında nesnenin şifreleme yöntemini veya depolama sınıfını değiştirmezseniz nesne 5 GB'tan büyük olamaz.

    • Kopyalama işlemi sırasında nesnenin şifreleme yöntemini veya depolama sınıfını değiştirirseniz nesne 1 GB'tan büyük olamaz. Nesne 1 GB'tan büyükse UploadPartCopy işlemini kullanmanız gerekir.

  • İzinler

    Hem CopyObject hem de UploadPartCopy işlemleri kaynak nesne üzerinde okuma izni gerektirir.

  • Sürüm oluşturma özelliği devre dışı olan bir pakette CopyObject işlemini kullanırsanız ve kaynak ile hedef nesneler aynıysa:

    • Şifreleme yöntemi veya depolama sınıfı değiştirilmezse OSS yalnızca nesnenin meta verilerini değiştirir ve içeriğini kopyalamaz.

    • Şifreleme yöntemi veya depolama sınıfı değiştirilirse OSS meta verileri değiştirir ve nesnenin içeriğini de kopyalar.

  • Kaynak nesne sembolik bağlantıdır

    Sembolik bağlantı üzerinde CopyObject işlemini kullanırsanız yalnızca sembolik bağlantı kopyalanır. Sembolik bağlantının işaret ettiği dosyanın içeriği kopyalanmaz.

  • Paket için hiyerarşik ad alanı etkinleştirildi

    Paket için hiyerarşik ad alanı etkinleştirildiyse dizinleri kopyalayamazsınız.

  • Dosya üzerine yazma çakışmalarının önlenmesi

    Prevent File Overwrite özelliğini etkinleştirirseniz CopyObject kullanarak bir dosyanın depolama sınıfını (örneğin Standard'dan Archive Storage'a) değiştiremezsiniz. Bunun yerine otomatik yaşam döngüsü dönüşümünü kullanın.

İzinler

Varsayılan olarak Alibaba Cloud hesabı tam izinlere 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 RAM policies veya Bucket Policy aracılığıyla işlem izinleri vermelidir.

API

Action

Description

CopyObject

oss:GetObject

Aynı bölgedeki bir paket içinde veya paketler arasında nesneleri kopyalar.

oss:PutObject

oss:GetObjectVersion

Kaynak nesne sürümünü versionId aracılığıyla belirtirseniz bu izin de gereklidir.

oss:GetObjectTagging

Nesne etiketlerini x-oss-tagging aracılığıyla kopyalarsanız bu izinler gereklidir.

oss:PutObjectTagging

oss:GetObjectVersionTagging

Kaynak nesnenin belirli bir sürümünün etiketlerini versionId aracılığıyla belirtirseniz bu izin de gereklidir.

kms:GenerateDataKey

Bir nesneyi kopyalarken hedef nesne meta verileri X-Oss-Server-Side-Encryption: KMS içeriyorsa bu iki izin gereklidir.

kms:Decrypt

Faturalandırma

  • CopyObject işlemine yapılan her çağrı hedef paket için bir PUT isteği olarak sayılır.

  • CopyObject işlemi hedef paketin depolama kullanımını artırır.

  • CopyObject işlemini kullanarak bir nesnenin depolama sınıfını değiştirmek veri üzerine yazmayı içerir. Örneğin IA (Infrequent Access) nesnesi oluşturulduktan sonraki 10 gün içinde üzerine yazılır ve depolama sınıfı Standard olarak değiştirilirse minimum depolama süresi karşılanmadığından 20 günlük IA depolama ücreti tahsil edilir. Depolama ücretleri hakkında daha fazla bilgi için bkz. Storage fees.

  • CopyObject işlemini çağırdığınızda kaynak nesne bir IA nesnesiyse IA depolama için veri getirme ücreti oluşur. Kaynak nesne RestoreObject kullanılarak geri yüklenmemiş bir Archive Storage nesnesiyse ve paket için Archive nesnelerinin gerçek zamanlı erişimi etkinleştirilmişse gerçek zamanlı erişim için veri getirme ücreti oluşur. Bu ücretler kaynak pakete sahip olan hesaba yansıtılır. Faturalandırma hakkında daha fazla bilgi için bkz. Data processing fees.

İstek sözdizimi

PUT /DestObjectName HTTP/1.1
Host: DestBucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
x-oss-copy-source: /SourceBucketName/SourceObjectName

İstek üstbilgileri

Kopyalama işlemine yönelik tüm istek üstbilgileri x-oss- ile başlar. Bu nedenle tüm bu istek üstbilgilerini imza dizesine eklemeniz gerekir.

Name

Type

Required

Value

Description

x-oss-forbid-overwrite

String

No

true

Aynı ada sahip mevcut bir hedef nesnenin üzerine yazılıp yazılmayacağını belirtir. Hedef paket için sürüm oluşturma etkinleştirilmiş veya askıya alınmışsa x-oss-forbid-overwrite istek üstbilgisi geçersizdir. Bu durumda aynı ada sahip bir nesnenin üzerine yazılmasına izin verilir.

  • x-oss-forbid-overwrite belirtilmemişse veya x-oss-forbid-overwrite değeri false olarak ayarlanmışsa aynı ada sahip bir hedef nesnenin üzerine yazabilirsiniz.

  • x-oss-forbid-overwrite değerini true olarak ayarlarsanız aynı ada sahip mevcut bir hedef nesnenin üzerine yazılmaz.

x-oss-forbid-overwrite istek üstbilgisini ayarlamak QPS işleme performansını düşürür. Çok sayıda işlemde (QPS > 1000) x-oss-forbid-overwrite istek üstbilgisini kullanmak için işinizi etkilememek üzere teknik destek ile iletişime geçin.

Varsayılan değer: false

x-oss-copy-source

String

Yes

/oss-example/oss.jpg

Kopyalama işlemi için kaynak adresini belirtir.

Varsayılan değer: yok

x-oss-copy-source-if-match

String

No

5B3C1A2E053D763E1B002CC607C5****

Yalnızca kaynak nesnenin ETag değeri sağladığınız ETag ile eşleşirse kopyalama işlemi gerçekleştirilir ve 200 OK döndürülür.

Varsayılan değer: yok

x-oss-copy-source-if-none-match

String

No

5B3C1A2E053D763E1B002CC607C5****

Yalnızca kaynak nesnenin ETag değeri sağladığınız ETag ile eşleşmezse kopyalama işlemi gerçekleştirilir ve 200 OK döndürülür.

Varsayılan değer: yok

x-oss-copy-source-if-unmodified-since

String

No

Mon, 11 May 2020 08:16:23 GMT

Yalnızca belirttiğiniz zaman nesnenin gerçek değiştirilme zamanıyla aynıysa veya ondan sonraysa nesne kopyalanır ve 200 OK döndürülür.

Varsayılan değer: yok

x-oss-copy-source-if-modified-since

String

No

Mon, 11 May 2020 08:16:23 GMT

Yalnızca belirttiğiniz zaman nesnenin gerçek değiştirilme zamanından önceyse nesne kopyalanır ve 200 OK döndürülür.

Varsayılan değer: yok

x-oss-metadata-directive

String

No

COPY

Hedef nesnenin meta verilerinin nasıl ayarlanacağını belirtir.

  • COPY (varsayılan): Meta verileri kaynak nesneden hedef nesneye kopyalar.

    OSS x-oss-server-side-encryption özelliğini kaynak nesneden hedef nesneye kopyalamaz. Hedef nesne için sunucu tarafı şifreleme yöntemi kopyalama işleminde x-oss-server-side-encryption belirtilip belirtilmediğine bağlıdır.

  • REPLACE: Kaynak nesnenin meta verilerini yoksayar ve istekte belirtilen meta verileri kullanır.

Önemli

Kaynak ve hedef nesneler aynıysa ve sürüm oluşturma etkinleştirilmemişse x-oss-metadata-directive değerinden bağımsız olarak kaynak nesnenin meta verileri yoksayılır. Hedef nesne istekte belirtilen meta verileri kullanır.

x-oss-server-side-encryption

String

No

AES256

OSS'in hedef nesneyi oluştururken kullandığı sunucu tarafı şifreleme algoritmasını belirtir.

Geçerli değerler: AES256 ve KMS

Önemli

Sembolik bağlantı nesnesini kopyalarken x-oss-server-side-encryption belirtemezsiniz.

KMS şifreleme algoritmasını yalnızca bir KMS paketi satın aldıktan sonra kullanabilirsiniz. Aksi takdirde OSS KmsServiceNotEnabled hatasını döndürür.

  • Kopyalama işleminde x-oss-server-side-encryption belirtilmezse kaynak nesnenin şifrelenmiş olup olmadığına bakılmaksızın hedef nesne sunucu tarafında şifrelenmez.

  • Kopyalama işleminde x-oss-server-side-encryption belirtilirse kaynak nesnenin şifrelenmiş olup olmadığına bakılmaksızın hedef nesne sunucu tarafında şifrelenir. Kopyalama işleminin yanıt üstbilgisi x-oss-server-side-encryption içerir ve değeri hedef nesnenin şifreleme algoritmasıdır.

    Hedef nesne indirildiğinde yanıt üstbilgisi ayrıca x-oss-server-side-encryption içerir ve değeri nesnenin şifreleme algoritmasıdır.

x-oss-server-side-encryption-key-id

String

No

9468da86-3509-4f8d-a61e-6eab1eac****

KMS tarafından yönetilen müşteri anahtarını (CMK) belirtir.

Bu parametre yalnızca x-oss-server-side-encryption KMS olarak ayarlandığında geçerlidir.

x-oss-object-acl

String

No

private

Nesne OSS'te oluşturulduğunda hedef nesnenin erişim izinlerini belirtir.

Geçerli değerler:

  • default (varsayılan): Nesne paketin izinlerini devralır.

  • private: Nesne özel bir kaynaktır. Yalnızca nesne sahibi ve yetkili kullanıcıların nesne üzerinde okuma ve yazma izni vardır. Diğer kullanıcılar nesneye erişemez.

  • public-read: Nesne herkese açık okunabilir bir kaynaktır. Yalnızca nesne sahibi ve yetkili kullanıcıların nesne üzerinde okuma ve yazma izni vardır. Diğer kullanıcıların yalnızca okuma izni vardır. Bu izni dikkatli kullanın.

  • public-read-write: Nesne herkese açık okunabilir/yazılabilir bir kaynaktır. Tüm kullanıcıların nesne üzerinde okuma ve yazma izni vardır. Bu izni dikkatli kullanın.

Erişim izinleri hakkında daha fazla bilgi için bkz. Object ACL.

x-oss-storage-class

String

No

Standard

Nesnenin depolama sınıfını belirtir.

Herhangi bir depolama sınıfına sahip bir paket için nesne yüklerken bu üstbilgiyi belirtirseniz yüklenen nesne belirtilen depolama sınıfında saklanır. Örneğin bir IA paketine nesne yüklerken x-oss-storage-class değerini Standard olarak ayarlarsanız nesne Standard nesne olarak saklanır.

Geçerli değerler:

  • Standard (varsayılan): Standard

  • IA: Infrequent Access

  • Archive: Archive Storage

  • ColdArchive: Cold Archive

  • DeepColdArchive: Deep Cold Archive

    Önemli

    Çok sayıda dosyayı kopyalarken kopyalanan dosyaların depolama sınıfını doğrudan Deep Cold Archive olarak belirtmek yüksek fees for PUT requests ücretlerine neden olur. PUT isteği ücretlerini azaltmak için dosyaları Deep Cold Archive depolama sınıfına geçirmek amacıyla bir lifecycle rule kullanmanızı öneririz.

Depolama sınıfları hakkında daha fazla bilgi için bkz. Storage classes.

x-oss-tagging

String

No

a:1

Nesnenin etiketlerini belirtir. Aynı anda birden çok etiket belirtebilirsiniz örneğin TagA=A&TagB=B.

Not

Anahtar ve değer URL kodlamalı olmalıdır. Bir öğe eşit işareti (=) içermiyorsa değer boş bir dize olarak kabul edilir.

x-oss-tagging-directive

String

No

Copy

Hedef nesnenin etiketlerinin nasıl ayarlanacağını belirtir. Geçerli değerler:

  • Copy (varsayılan): Etiketleri kaynak nesneden hedef nesneye kopyalar.

  • Replace: Kaynak nesnenin etiketlerini yoksayar ve istekte belirtilen etiketleri kullanır.

Bu işlem Host ve Date gibi ortak istek üstbilgilerini de kullanır. Daha fazla bilgi için bkz. Common request headers.

Yanıt üstbilgileri

Bu işlem yalnızca ortak yanıt üstbilgilerini kullanır. Daha fazla bilgi için bkz. Common response headers.

Yanıt öğeleri


Name


Type


Example


Description


CopyObjectResult


Container


N/A

CopyObject işleminin sonuçları için bir kapsayıcı.

Default value: none


ETag


String


5B3C1A2E053D763E1B002CC607C5****

Hedef nesnenin ETag değeri.

Parent element: CopyObjectResult


LastModified


String


Fri, 24 Feb 2012 07:18:48 GMT

Hedef nesnenin son güncellenme zamanı.

Parent element: CopyObjectResult

Örnekler

  • Sürüm oluşturma devre dışı

    Örnek istek

    PUT /test%2FAK.txt HTTP/1.1
    Host: tesx.oss-cn-zhangjiakou.aliyuncs.com
    Accept-Encoding: identity
    User-Agent: aliyun-sdk-python/2.6.0(Windows/7/AMD64;3.7.0)
    Accept: text/html
    Connection: keep-alive
    x-oss-copy-source: /test/AK.txt
    date: Fri, 28 Dec 2018 09:41:55 GMT
    authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
    Content-Length: 0

    Örnek yanıt

    x-oss-hash-crc64ecma nesnenin 64 bitlik CRC değerini gösterir. Bu 64 bitlik CRC değeri CRC-64/XZ standardına göre hesaplanır. CopyObject işlemi oluşturulan nesnenin 64 bitlik CRC değerine sahip olmasını garanti etmez.

    HTTP/1.1 200 OK
    Server: AliyunOSS
    Date: Fri, 28 Dec 2018 09:41:56 GMT
    Content-Type: application/xml
    Content-Length: 184
    Connection: keep-alive
    x-oss-request-id: 5C25EFE4462CE00EC6D87156
    ETag: "F2064A169EE92E9775EE5324D0B1****"
    x-oss-hash-crc64ecma: 12753002859196105360
    x-oss-server-time: 150
    <?xml version="1.0" encoding="UTF-8"?>
    <CopyObjectResult>
      <ETag>"F2064A169EE92E9775EE5324D0B1****"</ETag>
      <LastModified>2018-12-28T09:41:56.000Z</LastModified>
    </CopyObjectResult>
  • Sürüm kimliği belirtmeden bir nesneyi kopyala

    Örnek istek

    PUT /dest-object-example HTTP/1.1
    Host: versioning-copy.oss-cn-hangzhou.aliyuncs.com
    Date: Tue, 09 Apr 2019 03:45:32 GMT
    Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
    x-oss-copy-source: /versioning-copy-source/source-object

    Örnek yanıt

    Bu örnekte x-oss-copy-source-version-id kaynak nesnenin sürüm kimliğidir ki bu durumda geçerli sürümdür. x-oss-version-id yeni kopyalanan nesnenin sürüm kimliğidir.

    HTTP/1.1 200 OK
    x-oss-copy-source-version-id: CAEQNRiBgIC28uaA0BYiIDY5OGIwNmNlNjYyMTRjNTc4N2M2OGNiMjZkZTQ2****
    x-oss-version-id: CAEQNxiBgIDG8uaA0BYiIGZhZDRkZTk5Zjg3YzRhNzdiMWEwZGViNDM1NTFh****
    x-oss-request-id: 5CAC155CB7AEADE01700****
    Content-Type: application/xml
    Content-Length: 184
    Connection: keep-alive
    Date: Tue, 09 Apr 2019 03:45:32 GMT
    Server: AliyunOSS
    <?xml version="1.0" encoding="UTF-8"?>
    <CopyObjectResult>
      <ETag>"C81E728D9D4C2F636F067F89CC14****"</ETag>
      <LastModified>2019-04-09T03:45:32.000Z</LastModified>
    </CopyObjectResult>
  • Sürüm kimliği belirterek bir nesneyi kopyala

    Örnek istek

    PUT /dest-object-example HTTP/1.1
    Host: versioning-copy.oss-cn-hangzhou.aliyuncs.com
    Date: Tue, 09 Apr 2019 03:45:32 GMT
    Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
    x-oss-copy-source: /versioning-copy-source/source-object?versionId=CAEQNRiBgICv8uaA0BYiIDliZDc3MTc1NjE5MjRkMDI4ZGU4MTZkYjY1ZDgy****

    Örnek yanıt

    Bu örnekte x-oss-copy-source-version-id kaynak nesnenin sürüm kimliğidir ve bu değer x-oss-copy-source istek üstbilgisinde belirtilen sürümdür. x-oss-version-id yeni kopyalanan nesnenin sürüm kimliğidir.

    HTTP/1.1 200 OK
    x-oss-copy-source-version-id: CAEQNRiBgICv8uaA0BYiIDliZDc3MTc1NjE5MjRkMDI4ZGU4MTZkYjY1ZDgy****
    x-oss-version-id: CAEQNxiBgMDP8uaA0BYiIDIyNGNhZDQ1M2M3NzRkZThiNzE0N2I3ZDkxOWY4****
    x-oss-request-id: 5CAC155CB7AEADE01700****
    Content-Type: application/xml
    Content-Length: 184
    Connection: keep-alive
    Date: Tue, 09 Apr 2019 03:45:32 GMT
    Server: AliyunOSS
    <?xml version="1.0" encoding="UTF-8"?>
    <CopyObjectResult>
      <ETag>"C4CA4238A0B923820DCC509A6F75****"</ETag>
      <LastModified>2019-04-09T03:45:32.000Z</LastModified>
    </CopyObjectResult>

SDK'ler

Bu işlemi çağırmak için aşağıdaki dillere ait yazılım geliştirme kitlerini (SDK) kullanabilirsiniz.

ossutil komut satırı aracı

CopyObject işlemine karşılık gelen ossutil komutu için bkz. copy-object.

Hata kodları

Error code

HTTP status code

Description

InvalidArgument

400

x-oss-storage-class gibi bir parametrenin değeri geçersiz.

Precondition Failed

412

Bu hata aşağıdaki nedenlerden biriyle döndürülür:

  • x-oss-copy-source-if-match istek üstbilgisi belirtilmiştir ancak kaynak nesnenin ETag değeri sağladığınız ETag ile eşleşmez.

  • x-oss-copy-source-if-unmodified-since istek üstbilgisi belirtilmiştir ancak belirttiğiniz zaman nesnenin gerçek değiştirilme zamanından öncedir.

Not Modified

304

Bu hata aşağıdaki nedenlerden biriyle döndürülür:

  • x-oss-copy-source-if-none-match istek üstbilgisi belirtilmiştir ancak kaynak nesnenin ETag değeri sağladığınız ETag ile eşleşir.

  • x-oss-copy-source-if-modified-since istek üstbilgisi belirtilmiştir ancak kaynak nesne belirttiğiniz zamandan bu yana değiştirilmemiştir.

KmsServiceNotEnabled

403

x-oss-server-side-encryption değerini KMS olarak ayarladınız ancak bir KMS paketi satın almadınız.

FileAlreadyExists

409

Bu hatanın olası nedenleri şunlardır:

  • İstek üst bilgisi, aynı ada sahip bir nesnenin üzerine yazılmasını önlemek için x-oss-forbid-overwrite=true değerini içerir, ancak pakette aynı ada sahip bir nesne zaten mevcuttur.

  • Paket için hiyerarşik ad alanı özelliği etkinleştirilmiştir ve kaynak veya hedef nesnenin bir dizin olduğu bir nesneyi kopyalamaya çalışıyorsunuz.

FileImmutable

409

Korunan durumdaki bir paketteki verileri silmeye veya değiştirmeye çalışırsanız bu hata döndürülür.

SSS

CopyObject dosyaların toplu olarak kopyalanmasını destekler mi?

Hayır, desteklemez. CopyObject işlemi tek bir dosyayı kopyalamak için kullanılır. Birden çok dosyayı toplu olarak kopyalamak için ossutil kullanabilirsiniz. Daha fazla bilgi için bkz. cp (Dosyaları kopyalama).