Rails:从 URL 保存文件并将其保存到 Amazon S3

Posted

技术标签:

【中文标题】Rails:从 URL 保存文件并将其保存到 Amazon S3【英文标题】:Rails: save file from URL and save it to Amazon S3 【发布时间】:2013-03-02 23:13:31 【问题描述】:

从给定 URL 下载文件并立即将其上传到 Amazon S3 的更直接的方法是什么(+ 将有关文件的一些信息保存到数据库中,例如名称、大小等)?

现在,我既没有使用 Paperclip,也没有使用 Carrierwave。

谢谢

【问题讨论】:

【参考方案1】:

直截了当:

require 'open-uri'
require 's3'

amazon = S3::Service.new(access_key_id: 'KEY', secret_access_key: 'KEY')
bucket = amazon.buckets.find('image_storage')
url = 'http://www.example.com/url'
download = open(url)

file = bucket.objects.build('image.png')
file.content = (File.read download)

if file.save
  # Make a new ActiveRecord::Base class for this
  LogFile.create(size: download.size, type: download.type, name: url)
end

https://github.com/qoobaa/s3

【讨论】:

你在哪里写这个? 在纯文本文件中,然后使用$ ruby file.rb (?) 运行它 是的,但我对您的解决方案非常感兴趣,我想将其插入我的网站以存储来自鸟舍的图片。我创建了另一个问题:Save a picture in S3 from a temporary URL 您可以将此代码放入任何控制器操作中,或任何您认为合适的地方。例如,您可以制作一个表单来提交一个操作的 url,并将其作为替换 url 变量的参数

以上是关于Rails:从 URL 保存文件并将其保存到 Amazon S3的主要内容,如果未能解决你的问题,请参考以下文章

从 url 下载文件并将其上传到 AWS S3 而不保存 - node.js

如何从 Flutter 中的 URL 下载文件并将其保存在 iOS 共享文件夹中?

如何从 url 获取 json 数据并将其保存到 const 变量 [TypeScript]

如何将 blob URL 转换为音频文件并将其保存到服务器

从 UIImagePickerController 保存视频

如何使用 Rails 主动存储从 url 保存图像?