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