简体   繁体   中英

Rails uploading to Amazon S3 bucket

I have two differnt buckets in the same Amazon S3 account. I can upload fine to one but not the other.

pictures.rb

def self.set_s3_direct_post
  return S3_BUCKET.presigned_post(key: "uploads/#{SecureRandom.uuid}/${filename}", success_action_status: '201', acl: 'public-read')
end

aws.rb

S3_BUCKET = Aws::S3::Resource.new.bucket(ENV['S3_FIRST_BUCKET'])

Trying to change bucket (with S3_SECOND_BUCKET instead of S3_FIRST_BUCKET ) results in a failed upload. I notice that the url for a failed upload is in the form:

https://s3.amazonaws.com/%E2%80%9Csecond_bucket%E2%80%9D

but a successful upload looks like:

https://first_bucket.s3.amazonaws.com

How do I control this??

Unbelievable. I edited my ~/.profile file in TextEdit. The addition of the line:

export S3_SECOND_BUCKET="second_bucket"

put slightly curly double-quotes around second_bucket . Turns out these double-quotes are different to the ones Sublime Text 2 uses, which are straight (like above). The TextEdit versions weren't being recognised as quotes. Cheers TextEdit, you t**t.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM