Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:AppendObject

Son Güncelleme:Oct 01, 2026

Veri ekleyerek bir nesne yükler. AppendObject ile oluşturulan nesneler Eklenebilir (Appendable) türündedir; PutObject ile yüklenen nesneler ise Normal türdedir.

Sürüm Oluşturma

Bir paket için sürüm oluşturma etkinleştirildiğinde veya askıya alındığında, Eklenebilir nesnelerin davranışıyla ilgili aşağıdaki hususlara dikkat edin:

  • Bir Eklenebilir nesneye yalnızca mevcut sürümüne veri ekleyebilirsiniz. OSS bu nesne için önceki sürümler oluşturmaz.

    Mevcut sürüm üzerinde PutObject veya DeleteObject işlemi uygulamak, Eklenebilir nesneyi önceki bir sürüm olarak kaydeder. Nesneye artık veri eklenemez.

  • Normal nesneler veya silme işaretçileri gibi Eklenebilir olmayan nesnelerde AppendObject işlemi uygulanamaz.

  • Yeni bir Eklenebilir sürüm, yalnızca nesne mevcut değilse veya en son sürüm bir silme işaretçisiyse oluşturulabilir. Bu durumda position parametresini 0 olarak ayarlayın.

Sınırlamalar

  • Bir Eklenebilir nesnenin maksimum boyutu 5 GB'tır.

  • Bir bekletme ilkesi ile korunan nesnelerde AppendObject işlemini kullanamazsınız.

  • Eklenebilir nesneler, KMS üzerinden CMK Kimliği ile sunucu tarafı şifrelemeyi desteklemez.

  • Eklenebilir nesnelerin indirme performansı, Normal veya Çok Parçalı nesnelere kıyasla önemli ölçüde daha düşüktür. Bu durumun gereksinimlerinizi karşılayıp karşılamadığını değerlendirin.

İzinler

Varsayılan olarak bir 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, işlem izinlerini RAM ilkeleri veya Paket İlkesi aracılığıyla vermelidir.

API

Eylem

Açıklama

AppendObject

oss:PutObject

Bu işlemi çağırarak, mevcut bir nesneye ekleyerek bir nesne yükleyebilirsiniz.

oss:PutObjectTagging

Mevcut bir nesneye ekleyerek nesne yüklerken, x-oss-tagging aracılığıyla nesne etiketleri belirtiyorsanız bu izin gerekir.

İstek sözdizimi

POST /ObjectName?append&position=Position HTTP/1.1
Content-Length: ContentLength
Content-Type: ContentType
Host: BucketName.oss.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue

İstek üst bilgileri

Ad

Tür

Gerekli

Örnek

Açıklama

Cache-control

string

Hayır

no-cache

Nesne için web sayfası önbelleğe alma davranışı. RFC2616 içinde tanımlanmıştır.

Varsayılan: yok

Content-Disposition

string

Hayır

attachment;filename=oss_download.jpg

İndirildiğinde nesnenin adı. RFC2616 içinde tanımlanmıştır.

Varsayılan: yok

Content-MD5

string

Hayır

ohhnqLBJFiKkPSBO1eNaUA==

Mesaj gövdesinin bütünlüğünü doğrulamak için kullanılan Base64 kodlamalı MD5 karma değeri.

Mesaj gövdesinin (üst bilgiler hariç) MD5 karmasını hesaplayarak 128 bitlik bir değer üretin ve ardından bunu Base64 ile kodlayın.

Varsayılan: yok

Kısıtlamalar: yok

Expires

string

Hayır

Wed, 08 Jul 2015 16:57:01 GMT

Son kullanma zamanı. RFC2616 içinde tanımlanmıştır.

Varsayılan: yok

x-oss-server-side-encryption

string

Hayır

AES256

Sunucu tarafı şifreleme yöntemi.

Geçerli değerler:

  • AES256: Şifreleme ve şifre çözme için tamamen OSS tarafından yönetilen anahtarları kullanır (SSE-OSS).

  • KMS: Şifreleme ve şifre çözme için KMS tarafından yönetilen anahtarları kullanır.

x-oss-object-acl

string

Hayır

private

Nesnenin Erişim Kontrol Listesi (ACL).

Geçerli değerler:

  • default (varsayılan): Nesne, paket ACL'sini devralır.

  • private: Yalnızca 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: Yalnızca sahibi ve yetkili kullanıcılar nesneyi okuyup yazabilir. Diğer kullanıcıların yalnızca okuma erişimi vardır. Dikkatli kullanın.

  • public-read-write: Tüm kullanıcıların okuma ve yazma erişimi vardır. Dikkatli kullanın.

Erişim izinleri Nesne ACL bölümünde açıklanmıştır.

x-oss-storage-class

string

Hayır

Standard

Nesnenin depolama sınıfı.

Belirtildiğinde, nesne paketin depolama sınıfından bağımsız olarak bu sınıfta depolanır. Örneğin, Seyrek Erişimli (IA) bir pakette x-oss-storage-class değerini Standard olarak ayarlamak, nesnenin Standard olarak depolanmasını sağlar.

Geçerli değerler:

  • Standard: Standard

  • IA: Seyrek Erişim

  • Archive: Arşiv Depolama

Ayrıntılar için bkz. Depolama sınıfları.

Önemli
  • Bu istek üst bilgisi yalnızca ilk ekleme işlemi için geçerlidir. Sonraki ekleme işlemleri için geçerli değildir.

  • Eklenebilir türdeki nesneler hiçbir şekilde Soğuk Arşiv veya Derin Soğuk Arşiv depolama sınıfına dönüştürülemez.

x-oss-meta-*

string

Hayır

x-oss-meta-location

Özel meta veri üst bilgileri. Yalnızca ilk ekleme işlemi için geçerlidir. x-oss-meta-* ön ekiyle başlayan parametreler nesne meta verisi olarak depolanır.

Boyut sınırı: Toplam meta veri 8 KB'yi aşamaz.

Adlandırma kuralları: Yalnızca tire (-), rakamlar ve küçük harfler (a-z) kullanılabilir. Büyük harfler küçük harfe dönüştürülür. Alt çizgi (_) desteklenmez.

x-oss-tagging

string

Hayır

TagA=A

Anahtar-değer biçiminde nesne etiketleri. Birden çok etiket ampersan (&) ile ayrılır, örneğin TagA=A&TagB=B.

Önemli
  • Bu istek üst bilgisi yalnızca ilk ekleme işlemi için geçerlidir. Sonraki ekleme işlemleri için geçerli değildir.

  • Anahtar ve değer URL kodlamalı olmalıdır. Anahtar zorunludur, ancak değer isteğe bağlıdır. Örneğin, nesne etiketlerini TagA&TagB=B şeklinde ayarlayabilirsiniz.

Bu işlem ayrıca Ortak istek üst bilgilerini da destekler.

İstek parametreleri

Önemli

append ve position parametreleri CanonicalizedResource öğesinin bir parçasıdır ve imzaya dahil edilmelidir.

Ad

Tür

Gerekli

Örnek

Açıklama

append

string

Evet

Uygulanamaz

Bir AppendObject işlemini gösterir. Her çağrı, nesnenin son değiştirilme zamanını günceller.

position

string

Evet

0

Veri eklemeye başlanacak bayt ofseti. Her başarılı işlemden sonra x-oss-next-append-position bir sonraki konumu belirtir.

İlk ekleme işlemi için position değeri 0 olarak ayarlanmalıdır. Sonraki eklemeler için position değeri mevcut nesne boyutuna eşit olmalıdır. Örneğin, ilk ekleme işleminin content-length değeri 65536 ise, ikinci ekleme işleminde position değeri 65536 olarak ayarlanmalıdır.

  • position değeri 0 olduğunda ve aynı ada sahip bir nesne bulunmadığında, istek PutObject gibi davranır. x-oss-server-side-encryption gibi üst bilgileri ayarlayabilirsiniz; bu üst bilgiler daha sonraki AppendObject yanıtlarına dahil edilir. Meta verileri daha sonra değiştirmek için CopyObject kullanın.

  • Doğru konumda sıfır uzunlukta içerik eklemek nesne durumunu değiştirmez.

Yanıt üst bilgileri


Yanıt üst bilgisi


Tür


Örnek


Açıklama


x-oss-next-append-position


64-bit tamsayı


1717

Bir sonraki ekleme konumu; mevcut nesne boyutuna eşittir.

Başarı durumunda veya konum uyuşmazlığı nedeniyle 409 hatası oluştuğunda döndürülür.


x-oss-hash-crc64ecma


64-bit tamsayı


3231342946509354535


CRC-64/XZ standardına göre hesaplanan nesnenin 64-bit CRC değeri.

Bu işlem ayrıca Ortak yanıt üst bilgilerini da destekler.

CRC-64 hesaplama

Desteklenen hesaplama yöntemleri:

  • Boost CRC modülü kullanılarak hesaplama

    typedef boost::crc_optimal<64, 0x42F0E1EBA9EA3693ULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, true, true> boost_ecma;
    uint64_t do_boost_crc(const char* buffer, int length)
    {
        boost_ecma crc;
        crc.process_bytes(buffer, length);
        return crc.checksum();
    }
  • Python crcmod kullanılarak hesaplama

    import crcmod
    do_crc64 = crcmod.mkCrcFun(0x142F0E1EBA9EA3693, initCrc=0, xorOut=0xffffffffffffffff, rev=True)
    print(do_crc64(b"123456789"))

İlgili işlemler


Diğer işlem


İlişki açıklaması


PutObject


Mevcut bir Eklenebilir nesne üzerinde PutObject işlemi yapılması, nesneyi üzerine yazar ve türünü Normal olarak değiştirir.


HeadObject


Eklenebilir bir nesne üzerinde HeadObject işlemi, x-oss-next-append-position, x-oss-hash-crc64ecma ve x-oss-object-type (Appendable olarak ayarlanır) değerlerini döndürür.


GetBucket (ListObjects)


GetBucket, Type değeri Appendable olarak ayarlanmış Eklenebilir nesneleri listeler.

Örnekler

  • İstek örneği

    POST /oss.jpg?append&position=0 HTTP/1.1 
    Host: oss-example.oss.aliyuncs.com 
    Cache-control: no-cache 
    Expires: Wed, 08 Jul 2015 16:57:01 GMT 
    x-oss-storage-class: Archive
    Content-Disposition: attachment;filename=oss_download.jpg 
    Date: Wed, 08 Jul 2015 06:57:01 GMT 
    Content-Type: image/jpg 
    Content-Length: 1717 
    Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-disposition;content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e  
    [1717 bytes of object data]

    Yanıt örneği

    HTTP/1.1 200 OK
    Date: Wed, 08 Jul 2015 06:57:01 GMT
    ETag: "0F7230CAA4BE94CCBDC99C550000****"
    Connection: keep-alive
    Content-Length: 0  
    Server: AliyunOSS
    x-oss-hash-crc64ecma: 14741617095266562575
    x-oss-next-append-position: 1717
    x-oss-request-id: 559CC9BDC755F95A6448****
  • Sürüm oluşturma istek örneği

    Sürüm oluşturma etkinleştirildiğinde, AppendObject yanıtı mevcut nesnenin sürüm kimliğini belirten x-oss-version-id üst bilgisini içerir.

    POST /example?append&position=0 HTTP/1.1 
    Host: versioning-append.oss.aliyuncs.com 
    Date: Tue, 09 Apr 2019 03:59:33 GMT
    Content-Length: 3
    Content-Type: application/octet-stream
    Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e

    Yanıt örneği

    HTTP/1.1 200 OK
    Date: Tue, 09 Apr 2019 03:59:33 GMT
    ETag: "2776271A4A09D82CA518AC5C0000****"
    Connection: keep-alive
    Content-Length: 0  
    Server: AliyunOSS
    x-oss-version-id: CAEQGhiBgIC_k6aV5RgiIGI3YTY2ZmMzYWJlMzQ3YjM4YTljOTk5YjUyZGF****
    x-oss-hash-crc64ecma: 3231342946509354535
    x-oss-next-append-position: 47
    x-oss-request-id: 5CAC18A5B7AEADE01700****

SDK'ler

Bu işlem için SDK'ler:

ossutil komut satırı arayüzü

ossutil içindeki append-object komutunu kullanın.

Hata kodları

Hata kodu

HTTP durum kodu

Açıklama

ObjectNotAppendable

409

AppendObject, Eklenebilir olmayan bir nesne üzerinde çağrıldı.

PositionNotEqualToLength

409

  • position değeri nesnenin mevcut uzunluğuyla eşleşmiyor.

    Yeniden denemek için x-oss-next-append-position yanıt üst bilgisini kullanın. Eşzamanlı istekler yine de bu hatayla başarısız olabilir.

  • position değeri 0 olduğunda, istek yalnızca aynı ada sahip bir Eklenebilir nesne mevcut değilse veya mevcut olanın uzunluğu 0 ise başarılı olur. Aksi takdirde bu hata döndürülür.

InvalidArgument

400

x-oss-storage-class ve x-oss-object-acl gibi parametrelerin değerleri geçersiz.

FileImmutable

409

Paket korumalı bir durumda ve silme veya değiştirmeye izin vermiyor.

KmsServiceNotEnabled

403

KMS şifrelemesi belirtildi ancak konsolda Key Management Service (KMS) etkinleştirilmedi.