将图像从 Ruby 中的图像 url 上传到 AWS?

Jes*_*tny 3 ruby-on-rails amazon-s3 amazon-web-services

我有一个来自图像标签的源 url,我想将该图像上传到我的 S3 存储桶。我该怎么做?

小智 6

我知道这个问题很老,但我需要弄清楚这一点,但无法得到完整的答案。

这是我如何做到的。

首先确保它变成了一个 TempFile。如果这不仅仅是一次性的事情,并且您正在 Rails 中执行此操作……那么您可能希望将其添加为初始化程序或其他内容。确保重新启动服务器以使其生效。

OpenURI::Buffer.send :remove_const, 'StringMax'
OpenURI::Buffer.const_set 'StringMax', 0
Run Code Online (Sandbox Code Playgroud)

然后你可以通过url上传

def upload_file(filename, url)
  s3 = Aws::S3::Resource.new(region:'us-west-2')
  obj = s3.bucket(bucket_name).object(filename) # make sure your filename has an extension (.jpg for example)

  File.open(open(url), 'rb') do |file|
    obj.put(body: file)
  end

end
Run Code Online (Sandbox Code Playgroud)