Enviando archivos a S3 desde ruby

Hola hace tiempo que no escribía y eso es porque no he tenido ganas jaja sin embargo he aprendido muchas cosas últimos meses así que por si las necesito usar vamos a anotarlo

Existe al menos 3 gemas que podemos usar para esto usemos las oficiales de Amazon:

AMAZON SDK V1


#!/usr/bin/env ruby

require 'aws-sdk-v1'

#parametros AMAZON
region='us-east-1'
accesskeyid='<mi_id>'
accesskey='<mi_key>'

#codigo
s3 = AWS::S3.new(:region=>region,:access_key_id => accesskeyid,:secret_access_key => accesskey)
bucket = s3.buckets['<mi_bucket>']
data ='<ruta>'
type = 'imagen/png'
extension = 'png'
#nombre pseudo random
name = ('a'..'z').to_a.shuffle[0..7].join + ".#{extension}"
obj = bucket.objects.create(name,data,{content_type:type,acl:"public_read"})
url = obj.public_url().to_s


AMAZON V2

#!/usr/bin/env ruby

require 'aws-sdk'
require 'base64'

#parametros
region='us-east-1'
accesskeyid='<mi_id>'
accesskey='<mi_key>'

#codigo
s3=Aws::S3::Resource.new(:access_key_id => accesskeyid,:secret_access_key=>accesskey,:region=> region)
#recuperar base64
imagen=Base64.encode64('<ruta/archivo.jpg>')
data = Base64.decode64(imagen)

obj = s3.bucket('<mi_bucket>').object('<mi_nombre>').upload_file(data)

No comments: