Tous les produits
Search
Centre de documentation

Object Storage Service:Upload callbacks (Ruby SDK)

Dernière mise à jour :Aug 18, 2026

Une fois un objet chargé, Object Storage Service (OSS) peut envoyer une requête de callback au serveur d'application. Pour mettre en œuvre un callback, envoyez simplement à OSS une requête contenant les paramètres de callback pertinents.

Notes

  • Spécifiez un callback de chargement lors du transfert d'un fichier. Une fois le chargement réussi, OSS envoie une requête HTTP POST à l'adresse de serveur indiquée. Traitez ensuite les opérations selon le callback reçu.

  • L'URL de callback ne doit pas contenir de chaîne de requête. Spécifiez cette dernière dans le paramètre :query.

  • Si le fichier est chargé avec succès mais que le callback échoue, le client génère une erreur CallbackError. Pour ignorer cette erreur, gérez explicitement l'exception.

  • Pour plus d'informations sur le serveur qui accepte le callback, consultez callback_server.rb.

Exemple de code

Les callbacks de chargement sont pris en charge uniquement pour les transferts de fichiers utilisant put_object et resumable_upload.

Spécifier un callback de chargement lors de l'utilisation de put_object

Spécifiez un callback de chargement lorsque vous transférez un fichier à l'aide de put_object. Ajoutez les informations relatives au bucket et à l'objet au corps du callback. La réception du callback par votre serveur d'application confirme que le fichier a bien été chargé vers 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

Spécifier un callback de chargement lors de l'utilisation de resumable_upload

La procédure pour resumable_upload est similaire à celle 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

Références

  • Pour obtenir l'exemple de code complet relatif aux callbacks de chargement, consultez GitHub example.

  • Pour plus d'informations sur l'opération API relative aux callbacks de chargement, consultez Callback.