Todos los productos
Search
Centro de documentos

Object Storage Service:Callbacks de carga (SDK de Ruby)

Última actualización: Sep 22, 2026

Después de cargar un objeto, Object Storage Service (OSS) puede enviar una solicitud de callback al servidor de aplicaciones. Para implementar un callback, solo necesita enviar a OSS una solicitud que contenga los parámetros de callback correspondientes.

Notas

  • Al cargar un archivo, especifique un callback de carga. Una vez que la carga finaliza correctamente, OSS envía una solicitud HTTP POST a la dirección del servidor que haya indicado. A partir de ahí, ejecute las operaciones necesarias según el callback recibido.

  • La URL del callback no admite cadenas de consulta. Especifique la cadena de consulta en el parámetro :query.

  • Si el archivo se carga correctamente pero el callback falla, el cliente genera un error CallbackError. Para ignorar este error, gestione la excepción de manera explícita.

  • Para obtener más información sobre el servidor que recibe el callback, consulte callback_server.rb.

Código de ejemplo

Los callbacks de carga solo son compatibles con las cargas de archivos que utilizan put_object y resumable_upload.

Especificar un callback de carga al usar put_object

Especifique un callback de carga cuando cargue un archivo mediante put_object. Agregue la información del bucket y del objeto de la carga al cuerpo del callback. Cuando el servidor de aplicaciones recibe el callback, confirma que el archivo se cargó correctamente en OSS.

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

Especificar un callback de carga al usar resumable_upload

El procedimiento para resumable_upload es similar al de put_object.

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

Referencias

  • Para consultar el código de ejemplo completo de los callbacks de carga, revise el ejemplo de GitHub.

  • Para obtener más información sobre la operación de API de los callbacks de carga, consulte Callback.