Bir nesne yüklendikten sonra Object Storage Service (OSS), uygulama sunucusuna bir geri arama isteği gönderebilir. Geri arama uygulamak için OSS'e ilgili geri arama parametrelerini içeren bir istek göndermeniz yeterlidir.
Notlar
Dosya yüklerken yükleme geri araması belirtebilirsiniz. Yükleme başarılı olduktan sonra OSS, belirttiğiniz sunucu adresine bir HTTP POST isteği gönderir. Ardından alınan geri aramaya göre işlem yapabilirsiniz.
Geri arama URL'si sorgu dizesi içeremez. Sorgu dizesini
:queryparametresinde belirtin.Dosya başarıyla yüklenir ancak geri arama başarısız olursa istemci bir
CallbackErrorhatası oluşturur. Bu hatayı yoksaymak istiyorsanız özel durumu açıkça ele almanız gerekir.Geri aramayı kabul eden sunucu hakkında daha fazla bilgi için bkz. callback_server.rb.
Örnek kod
Yükleme geri aramaları yalnızca put_object ve resumable_upload kullanılarak yapılan dosya yüklemeleri için desteklenir.
put_object kullanırken yükleme geri araması belirtin
put_object kullanarak dosya yüklerken yükleme geri araması belirtin. Yüklenen paket ve nesne bilgilerini geri aramanın gövdesine ekleyin. Uygulama sunucunuz tarafından alınan geri arama, dosyanın OSS'e başarıyla yüklendiğini doğrular.
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# The China (Hangzhou) region is used as an example for the endpoint. Specify the endpoint based on your region.
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']
)
# Specify the bucket name, for example, examplebucket.
bucket = client.get_bucket('examplebucket')
callback = Aliyun::OSS::Callback.new(
url: 'http://oss-demo.aliyuncs.com:23450',
query: {user: 'put_object'},
body: 'bucket=${bucket}&object=${object}'
)
begin
bucket.put_object('files/hello', file: '/tmp/x', callback: callback)
rescue Aliyun::OSS::CallbackError => e
puts "Callback failed: #{e.message}"
end
resumable_upload kullanırken yükleme geri araması belirtin
resumable_upload işlemleri put_object ile benzerdir.
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# The China (Hangzhou) region is used as an example for the endpoint. Specify the endpoint based on your region.
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']
)
# Specify the bucket name, for example, examplebucket.
bucket = client.get_bucket('examplebucket')
callback = Aliyun::OSS::Callback.new(
url: 'http://oss-demo.aliyuncs.com:23450',
query: {user: 'put_object'},
body: 'bucket=${bucket}&object=${object}'
)
begin
bucket.resumable_upload('files/hello', '/tmp/x', callback: callback)
rescue Aliyun::OSS::CallbackError => e
puts "Callback failed: #{e.message}"
end
İlgili kaynaklar
Yükleme geri aramaları için tam örnek kodu görmek üzere bkz. GitHub örneği.
Yükleme geri aramaları API işlemi hakkında daha fazla bilgi için bkz. Callback.