github.com/iron-io/functions@v0.0.0-20180820112432-d59d7d1c40b2/examples/image_processing/s3upload/func.rb (about)

     1  require 'mini_magick'
     2  require 'aws-sdk-s3'
     3  
     4  file_uri = STDIN.read.strip
     5  image = MiniMagick::Image.open(file_uri)
     6  image.contrast
     7  image.resize "250x200"
     8  image.rotate "-90"
     9  
    10  s3 = Aws::S3::Client.new
    11  bucket = ENV['AWS_S3_BUCKET']
    12  
    13  obj = s3.put_object( bucket: bucket,
    14                       key: File.basename(file_uri),
    15                       body: image.tempfile,
    16                       acl: "public-read",
    17                       cache_control: "max-age=604800")
    18  
    19  # Unfortunately put_object returns `put object output`, not an object.
    20  # So we create another reference here. Probably there is a better way to do this in S3 API.
    21  obj = Aws::S3::Object.new bucket_name: bucket, key: File.basename(file_uri)
    22  puts obj.public_url