Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:PostObject

Son Güncelleme:Oct 01, 2026

HTML formu kullanarak bir pakete nesne yüklemek için PostObject işlemini çağırın.

Kullanım notları

  • HTML formu ile yükleme işlemi için oss:PutObject izni gerekir. RAM kullanıcısına özel bir ilke ekleyin.

  • PostObject ile yüklenen nesnelerin boyutu 5 GB'ı aşamaz.

  • PostObject isteği paket üzerinde yazma izni gerektirir. Paket Erişim Kontrol Listesi (ACL) public-read-write ise imza bilgisi gerekmez. Aksi takdirde OSS, istekteki imzayı doğrular.

  • PutObject'ten farklı olarak PostObject, ilkeyi imzalamak için AccessKey secret kullanır. Oluşturulan imza dizesi, OSS tarafından doğrulanan Signature form alanının değeridir.

  • Form URL'si, nesne adı içermeyen paket alan adıdır. İstek satırı POST / HTTP/1.1 şeklindedir; POST /ObjectName HTTP/1.1 değildir.

  • Bir POST isteğinin başlık veya URL bölümünde imza bilgisi bulunuyorsa OSS bu bilgiyi kontrol etmez.

Sürüm oluşturma

Pakette sürüm oluşturma etkinleştirilmişse OSS, yüklenen nesne için benzersiz bir sürüm kimliği oluşturur ve bunu x-oss-version-id yanıt başlığında döndürür.

Sürüm oluşturma askıya alınmışsa OSS, yüklenen nesne için null bir sürüm kimliği oluşturur ve bunu x-oss-version-id yanıt başlığında döndürür. Her nesne için yalnızca bir null sürüm kimliğine izin verilir.

İstek sözdizimi

POST / HTTP/1.1 
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
User-Agent: browser_data
Content-Length: ContentLength
Content-Type: multipart/form-data; boundary=9431149156168
--9431149156168
Content-Disposition: form-data; name="key"
key
--9431149156168
Content-Disposition: form-data; name="success_action_redirect"
success_redirect
--9431149156168
Content-Disposition: form-data; name="Content-Disposition"
attachment;filename=oss_download.jpg
--9431149156168
Content-Disposition: form-data; name="x-oss-meta-uuid"
myuuid
--9431149156168
Content-Disposition: form-data; name="x-oss-meta-tag"
mytag
--9431149156168
Content-Disposition: form-data; name="OSSAccessKeyId"
access-key-id
--9431149156168
Content-Disposition: form-data; name="policy"
encoded_policy
--9431149156168
Content-Disposition: form-data; name="Signature"
signature
--9431149156168
Content-Disposition: form-data; name="file"; filename="MyFilename.jpg"
Content-Type: image/jpeg
file_content
--9431149156168
Content-Disposition: form-data; name="submit"
Upload to OSS
--9431149156168--

İstek başlıkları

Önemli
  • PostObject istek gövdesi multipart/form-data kodlaması kullanır. Parametreleri HTTP başlıklarında ileten PutObject'ten farklı olarak PostObject, parametreleri gövdedeki form alanları olarak iletir.

  • PostObject, x-oss-tagging başlığını desteklemez. PostObject işlemi tamamlandıktan sonra nesneyi etiketlemek için PutObjectTagging çağrısı yapın.

Ad

Tür

Zorunlu

Açıklama

Content-Type

Dize

Hayır

Tarayıcıların dosyayı nasıl okuyacağını belirleyen dosya türü ve web sayfası kodlaması.

Post işlemi sırasında gönderilen formun multipart/form-data biçiminde kodlanması gerekir. Bu, Content-Type başlığının multipart/form-data;boundary=xxxxxx biçiminde olduğu anlamına gelir.

Sınır (boundary), form tarafından oluşturulan rastgele bir dizedir. Bunu belirtmeniz gerekmez. SDK'lar bu değeri otomatik olarak oluşturur.

Bu işlem ayrıca Host ve Date gibi Ortak istek başlıklarını da kullanır.

Form öğeleri

Aşağıdaki tabloda V1 ve V4 imzaları için ortak olan form öğeleri açıklanmaktadır. Yalnızca V4 imzalarına özgü form öğeleri hakkında bilgi için bkz. V4 imza formu. Yalnızca V1 imzalarına özgü form öğeleri hakkında bilgi için bkz. V1 imza formu.

Önemli
  • Dosya alanı son form alanı olmalıdır. Diğer form alanları herhangi bir sırada olabilir.

  • Bir form alanının anahtarı 8 KB'yi, değeri ise 2 MB'yi aşamaz.

Ad

Tür

Zorunlu

Açıklama

Cache-Control

Dize

Hayır

Nesne indirildiğinde RFC 2616 standardında tanımlandığı şekilde önbelleğe alma davranışı.

Varsayılan değer: yok.

Content-Disposition

Dize

Hayır

RFC 2616 standardında tanımlandığı şekilde nesnenin indirme dosya adı.

Varsayılan değer: yok.

Content-Encoding

Dize

Hayır

İndirildiğinde nesnenin içerik kodlaması (RFC 2616).

Varsayılan değer: yok.

Expires

Dize

Hayır

RFC 2616 standardında tanımlandığı şekilde önbellek sona erme süresi.

Varsayılan değer: yok.

policy

Dize

Evet, koşullu

İstek form alanlarının geçerliliğini belirtir. Policy alanı içermeyen bir istek anonim olarak değerlendirilir ve yalnızca public-read-write paketlere erişebilir.

Varsayılan değer: yok.

Kısıtlama: Paket public-read-write değilse veya OSSAccessKeyId ya da Signature sağlanmışsa zorunludur.

Önemli

Form ve ilke UTF-8 olarak kodlanmalıdır. Policy form alanı ayrıca Base64 ile kodlanmalıdır.

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

Dize

Hayır

KMS tarafından yönetilen müşteri ana anahtarı (CMK). Yalnızca x-oss-server-side-encryption KMS olarak ayarlandığında geçerlidir.

x-oss-content-type

Dize

Hayır

Tarayıcıların dosya form alanına otomatik olarak eklediği Content-Type değerini geçersiz kılar. Content-Type belirtimi için bu öğe en yüksek önceliğe sahiptir.

Öncelik sırası: x-oss-content-type > Dosya form alanının Content-Type değeri

Varsayılan değer: yok.

x-oss-forbid-overwrite

Dize

Hayır

PostObject işlemi sırasında aynı ada sahip bir nesnenin üzerine yazılıp yazılmayacağını belirtir.

Sürüm oluşturma etkinleştirildiğinde veya askıya alındığında x-oss-forbid-overwrite yoksayılır ve aynı adlı nesnelerin üzerine yazılabilir.

  • x-oss-forbid-overwrite belirtilmemişse veya x-oss-forbid-overwrite false olarak ayarlanmışsa aynı adlı nesnelerin üzerine yazılabilir.

  • x-oss-forbid-overwrite true olarak ayarlanmışsa aynı adlı nesnelerin üzerine yazılamaz.

x-oss-forbid-overwrite başlığı saniyedeki sorgu sayısını (QPS) düşürür. x-oss-forbid-overwrite kullanımınız 1.000 QPS'i aşarsa teknik destekle iletişime geçin.

x-oss-object-acl

Dize

Hayır

Yüklenen nesne için erişim izinleri.

Geçerli değerler:

  • default (varsayılan): Paket ACL'sini devralır.

  • private: Nesneyi yalnızca sahibi ve yetkili kullanıcılar okuyup yazabilir.

  • public-read: Tüm kullanıcılar nesneyi okuyabilir. Yalnızca sahibi ve yetkili kullanıcılar yazabilir. Dikkatli kullanın.

  • public-read-write: Tüm kullanıcılar nesneyi okuyup yazabilir. Dikkatli kullanın.

Erişim izinleri Nesne ACL konusunda açıklanmıştır.

x-oss-storage-class

Dize

Hayır

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

Paket depolama sınıfından bağımsız olarak yüklenen nesne, belirttiğiniz sınıfı kullanır. Örneğin, IA bir paket için x-oss-storage-class değerini Standard olarak belirtmek nesneyi Standard olarak depolar.

Geçerli değerler:

  • Standard: Standard

  • IA: Infrequent Access

  • Archive: Archive Storage

  • ColdArchive: Cold Archive

  • DeepColdArchive: Deep Cold Archive

    Önemli

    Büyük sayıda nesne yüklemek istiyorsanız yüklenecek nesneler için doğrudan Deep Cold Archive depolama sınıfını belirtmek yüksek PUT isteği ücretlerine neden olur. Nesneleri yüklerken önce Standard depolama sınıfını belirtmenizi ve ardından PUT isteği ücretlerini azaltmak için bunları yaşam döngüsü kuralları kullanarak Deep Cold Archive depolama sınıfına dönüştürmenizi öneririz.

Depolama sınıfları.

key

Dize

Evet

Yüklenecek nesnenin adı. Adı kodlamayın. Ad bir yol içeriyorsa (örneğin destfolder/example.jpg) OSS ilgili klasörü otomatik olarak oluşturur.

Varsayılan değer: yok.

success_action_redirect

Dize

Hayır

Yükleme başarılı olduktan sonra istemcinin yönlendirileceği URL. Belirtilmezse yanıt davranışı success_action_status tarafından belirlenir. Başarısızlık durumunda OSS yeniden yönlendirme yapmadan bir hata döndürür.

Varsayılan değer: yok.

success_action_status

Dize

Hayır

success_action_redirect belirtilmediğinde başarılı bir yüklemenin ardından döndürülen HTTP durum kodu.

Geçerli değerler: 200, 201 ve 204 (varsayılan).

  • Bu alan 200 veya 204 olarak ayarlanırsa OSS boş bir belge ve ilgili durum kodunu döndürür.

  • Bu alan 201 olarak ayarlanırsa OSS bir XML dosyası ve 201 durum kodunu döndürür.

  • Bu alan ayarlanmamışsa veya geçersiz bir değere ayarlanmışsa OSS boş bir belge ve 204 durum kodunu döndürür.

x-oss-meta-*

Dize

Hayır

Kullanıcı tanımlı meta veriler.

Varsayılan değer: yok.

x-oss-meta- önekiyle başlayan form alanları kullanıcı meta verileri olarak depolanır. Örnek: x-oss-meta-location.

Not

Bir nesne birden fazla böyle parametreye sahip olabilir ancak tüm kullanıcı meta verilerinin toplam boyutu 8 KB'yi aşamaz.

x-oss-security-token

Dize

Hayır

STS güvenlik belirteci. Yalnızca imzalı bir URL oluşturmak için STS kullanırken gereklidir. Bir belirteç almak için AssumeRole işlemini çağırın.

Varsayılan değer: yok.

file

Dize

Evet

Dosya veya metin içeriği. İçeriği kodlamayın. Tarayıcı, dosya türüne göre Content-Type değerini ayarlayarak sizin ayarlarınızı geçersiz kılar. Her istekte yalnızca bir dosya yüklenebilir.

Varsayılan değer: yok.

Önemli

Dosya alanı son form alanı olmalıdır.

Yanıt başlıkları

Ad

Tür

Örnek

Açıklama

x-oss-server-side-encryption

Dize

KMS

İstekte x-oss-server-side-encryption belirtilmişse döndürülür. Kullanılan şifreleme algoritmasını gösterir.

Content-MD5

Dize

1B2M2Y8AsgTpgAmY7PhC****

Dosyanın MD5 karma değeri.

Önemli

Bu, yüklenen dosyanın MD5 karma değeridir; yanıt gövdesinin MD5 karma değeri değildir.

x-oss-hash-crc64ecma

Dize

316181249502703****

Dosyanın CRC-64 değeri.

x-oss-version-id

Dize

CAEQNhiBgMDJgZCA0BYiIDc4MGZjZGI2OTBjOTRmNTE5NmU5NmFhZjhjYmY0****

Yüklenen nesnenin sürüm kimliği. Yalnızca sürüm oluşturma özelliği etkin olan paketler için döndürülür.

Bu işlem ayrıca Date ve x-oss-request-id gibi Ortak yanıt başlıklarını da döndürür.

Yanıt öğeleri


Ad


Tür


Açıklama


PostResponse


Kapsayıcı

Post isteğinin sonucunu depolayan kapsayıcı.

Alt düğümler: Bucket, ETag, Key ve Location


Bucket


Dize

Paketin adı.

Üst düğüm: PostResponse


ETag


Dize

Yüklenen nesnenin ETag değeri. PostObject yüklemeleri için ETag benzersiz bir tanımlayıcıdır ancak içeriğin MD5 karma değeri değildir. İçeriğin değişip değişmediğini doğrulamak için kullanın.

Üst düğüm: PostResponse


Location


Dize

Yeni oluşturulan nesnenin URL'si.

Üst düğüm: PostResponse

Örnekler

  • İstek örneği:

    POST / HTTP/1.1
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com
    Content-Length: 344606
    Content-Type: multipart/form-data; boundary=9431149156168
    --9431149156168
    Content-Disposition: form-data; name="key"
    /user/a/objectName.txt
    --9431149156168
    Content-Disposition: form-data; name="success_action_status"
    200
    --9431149156168
    Content-Disposition: form-data; name="Content-Disposition"
    content_disposition
    --9431149156168
    Content-Disposition: form-data; name="x-oss-meta-uuid"
    uuid
    --9431149156168
    Content-Disposition: form-data; name="x-oss-meta-tag"
    metadata
    --9431149156168
    Content-Disposition: form-data; name="OSSAccessKeyId"
    44CF9590006BF252****
    --9431149156168
    Content-Disposition: form-data; name="policy"
    eyJleHBpcmF0aW9uIjoiMjAxMy0xMi0wMVQxMjowMDowMFoiLCJjb25kaXRpb25zIjpbWyJjb250ZW50LWxlbmd0aC1yYW5nZSIsIDAsIDEwNDg1NzYwXSx7ImJ1Y2tldCI6ImFoYWhhIn0sIHsiQSI6ICJhIn0seyJrZXkiOiAiQUJDIn1dfQ==
    --9431149156168
    Content-Disposition: form-data; name="Signature"
    kZoYNv66bsmc10+dcGKw5x2P****
    --9431149156168
    Content-Disposition: form-data; name="file"; filename="MyFilename.txt"
    Content-Type: text/plain
    abcdefg
    --9431149156168
    Content-Disposition: form-data; name="submit"
    Upload to OSS
    --9431149156168--
  • Yanıt örneği:

    HTTP/1.1 200 OK
    x-oss-request-id: 61d2042d-1b68-6708-5906-33d81921362e 
    Date: Fri, 24 Feb 2014 06:03:28 GMT
    ETag: "5B3C1A2E053D763E1B002CC607C5****"
    Connection: keep-alive
    Content-Length: 0
    x-oss-hash-crc64ecma: 316181249502703****
    Content-MD5: 1B2M2Y8AsgTpgAmY7PhC****
    Server: AliyunOSS

SDK

Desteklenen SDK'lar:

Hata kodları

Hata kodu

HTTP durum kodu

Açıklama

FieldItemTooLong

400

Form alanı anahtarının boyutu 8 KB'yi, form alanı değerinin boyutu ise 2 MB'yi aşamaz.

InvalidArgument

400

Paket ACL'sinden bağımsız olarak OSSAccessKeyId, policy veya Signature alanlarından herhangi biri sağlanırsa üçü de gereklidir. Herhangi biri eksikse bu hata döndürülür.

InvalidDigest

400

İstekteki Content-MD5 değeri, OSS tarafından istek gövdesi için hesaplanan MD5 karma değeriyle eşleşmiyor.

EntityTooLarge

400

İstek gövdesi 5 GB boyut sınırını aşıyor.

InvalidEncryptionAlgorithmError

400

x-oss-server-side-encryption değeri AES256 veya KMS değil.

IncorrectNumberOfFilesInPOSTRequest

400

Bir PostObject isteği yalnızca bir dosya form alanı içerebilir.

FileAlreadyExists

409

Aynı ada sahip bir nesne mevcut ve x-oss-forbid-overwrite true olarak ayarlanmış.

KmsServiceNotEnabled

403

x-oss-server-side-encryption KMS olarak ayarlanmış ancak önceden bir KMS paketi satın almamışsınız.

FileImmutable

409

Paket korumalı ve veriler silinemez veya değiştirilemez.

MethodNotAllowed

405

HTTP istek yöntemi desteklenmiyor. İstek yönteminin, başlıkların, URL protokolünün, alan adının ve yolun doğru olduğunu doğrulayın.

POST ilkesi

Policy form alanı, HTML formu yüklemeleri için kısıtlamalar (paket adı, nesne öneki, geçerlilik süresi, izin verilen HTTP yöntemleri, yükleme boyutu sınırları ve içerik türleri dahil) belirten JSON biçimli bir güvenlik ilkesidir.

POST imzası

Her PostObject isteği, kimlik doğrulama için bir imza içermelidir.

SSS

"Your proposed upload exceeds the maximum allowed size" hatası alınırsa ne yapmalıyım?

  • Neden: Yüklenen dosyanın boyutu content-length-range tarafından belirtilen aralığın dışındadır.

  • Çözüm: Yüklenen dosya için bayt cinsinden izin verilen minimum ve maksimum boyutları belirtmek üzere content-length-range kullanın. Örneğin, 1 GB'lık bir dosya yüklemek için content-length-range değerini ["content-length-range", 1, 1073741824] olarak ayarlayabilirsiniz.

İlgili konular