对于我的Rails应用程序,我将一堆文件从远程URL下载到我的应用程序。我想直接将它们上传到Amazon S3,而不需要表单进行上传,因为我会暂时缓存我在EC2实例上下载的文件。 我还想保留我上传的文件的链接,以便稍后下载。
我基本上是重新发布我下载的文件。
我环顾四周,但大多数解决方案似乎都涉及与用户上传到S3的表单。
是否有直接上传解决方案?
答案 0 :(得分:1)
您可以使用AWS SDK for Ruby直接上传到S3。最简单的方法是:
require 'aws-sdk'
s3 = Aws::S3::Resource.new(region:'us-west-2')
obj = s3.bucket('bucket-name').object('key')
obj.upload_file('/path/to/source/file')
或者你可以找到其他几个选项here。
答案 1 :(得分:0)
您只需使用EvaporateJS即可实现此目的。您还可以在每次上载文件后利用发送ajax请求将文件名更新到数据库。虽然javascript暴露了一些细节,但是你的存储桶不容易受到攻击,因为S3服务提供了一个存储桶策略。
只需在生产模式下将<AllowedOrigin>*</AllowedOrigin>
设置为<AllowedOrigin>specificwebsite.com</AllowedOrigin>
即可。