Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:Resumable upload (Ruby SDK)

Son Güncelleme:Oct 01, 2026

Bir nesneyi Object Storage Service (OSS) içine kesintisiz karşıya yükleme yöntemiyle yüklerken, karşıya yükleme ilerlemesini saklayan kontrol noktası dosyası için bir dizin belirtebilirsiniz. Ağ hatası veya program hatası nedeniyle bir nesnenin karşıya yüklenmesi başarısız olursa, karşıya yükleme işlemi kontrol noktası dosyasında kaydedilen konumdan devam eder.

Uygulama

Kesintisiz karşıya yükleme, bir dosyayı birden çok parçaya böler ve bunları ayrı ayrı yükler. Tüm parçalar yüklendikten sonra birleştirilerek eksiksiz dosya oluşturulur.

Kesintisiz karşıya yükleme yapmak için Bucket#resumable_upload yöntemini kullanabilirsiniz. Bu yöntem aşağıdaki parametreleri içerir:

Parametre

Açıklama

Gerekli

Varsayılan değer

key

OSS'e karşıya yüklenecek dosyanın tam yolu.

Evet

Yok

file

Karşıya yüklenecek yerel dosyanın tam yolu.

Not

Karşıya yükleme sırasında yerel dosyanın ETag değeri değişirse yükleme başarısız olur.

Evet

Yok

:cpt_file

Kırılma noktası bilgilerini kaydetmek için kullanılan dosya. Bu dosya üzerinde yazma iznine sahip olmanız gerekir.

Not
  • Bir parça karşıya yüklenemediğinde sonraki deneme .cpt dosyasında kaydedilen kırılma noktasından devam eder. Bucket#resumable_upload öğesini tekrar çağırırken aynı .cpt dosyasını belirtin. Karşıya yükleme tamamlandığında .cpt dosyası silinir.

  • .cpt dosyası karşıya yüklemenin ara durumunu kaydeder ve bir doğrulama özelliği içerir. .cpt dosyasını düzenlemeyin. .cpt dosyası bozulursa karşıya yükleme devam ettirilemez.

Hayır

Yerel dosya ile aynı dizindeki file.cpt dosyası. file, yerel dosyanın adını temsil eder.

:disable_cpt

Karşıya yükleme ilerlemesinin kaydedilip kaydedilmeyeceğini belirtir. Geçerli değerler:

  • true: Karşıya yükleme ilerlemesi kaydedilmez. Yükleme başarısız olursa devam ettirilemez.

  • false: Karşıya yükleme ilerlemesi kaydedilir. Yükleme başarısız olursa kırılma noktasından devam eder.

Hayır

false

:part_size

Her bir parçanın boyutu.

Hayır

4 MB

&block

Çağrı sırasında bir blok geçirilirse karşıya yükleme ilerlemesi bu blok tarafından işlenir.

Hayır

Yok

Örnek kod

Aşağıdaki kod, kesintisiz karşıya yükleme yapmanıza ilişkin bir örnek sunar.

require 'aliyun/oss'

client = Aliyun::OSS::Client.new(
  # The endpoint of the China (Hangzhou) region is used as an example. Specify the actual endpoint.
  endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
  # Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are set.
  access_key_id: ENV['OSS_ACCESS_KEY_ID'],
  access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)
# Set the bucket name. For example, examplebucket.
bucket = client.get_bucket('examplebucket')
# Set key to the full path of the object. The full path cannot contain the bucket name. For example, exampledir/example.zip.
# Set file to the full path of the local file. For example, /tmp/example.zip.
bucket.resumable_upload('exampledir/example.zip', '/tmp/example.zip') do |p|
  puts "Progress: #{p}"
end

bucket.resumable_upload(
  'exampledir/example.zip', '/tmp/example.zip',
  :part_size => 100 * 1024, :cpt_file => '/tmp/example.zip.cpt') { |p|
  puts "Progress: #{p}"
}