Chargement d'une image dans S3 en utilisant aws-sdk v2

Je m'éclate à travailler avec la documentation aws-sdk, tous les liens que je suis semblent périmés et inutilisables.

je cherche un exemple simple d'implémentation de téléchargement d'un fichier image dans un seau S3 de Ruby.

  • disons que le chemin de l'image est screenshots/image.png
  • et je veux le télécharger pour le seau my_bucket
  • AWS creds vivre dans mon ENV

tout conseil est très apprécié.

17
demandé sur YoDK 2015-02-17 23:56:02

1 réponses

Voici comment vous pouvez télécharger un fichier à partir du disque vers le seau nommé et la clé:

s3 = Aws::S3::Resource.new
s3.bucket('my_bucket').object('key').upload_file('screenshots/image.png')

C'est la méthode la plus simple. Vous devez remplacer "clé" par la clé avec laquelle vous voulez qu'elle soit stockée dans Amazon S3. Ceci chargera automatiquement de gros fichiers pour vous en utilisant l'API de téléchargement multipart et rejettera les pièces défectueuses.

si vous préférez Télécharger en utilisant toujours PUT object, vous pouvez appeler #put ou utiliser un Aws::S3::Client:

# using put
s3 = Aws::S3::Resource.new
File.open('screenshots/image.png', 'rb') do |file|
  s3.bucket('my_bucket').object('key').put(body:file)
end

# using a client
s3 = Aws::S3::Client.new
File.open('screenshots/image.png', 'rb') do |file|
  s3.put_object(bucket:'my_bucket', key:'key', body:file)
end

aussi, la documentation de référence de L'API pour la v2 SDK est ici: http://docs.aws.amazon.com/sdkforruby/api/index.html

35
répondu Trevor Rowe 2015-02-21 00:05:21