对于我的Rails应用程序,我从一个远程URL下载一堆文件到我的应用程序。我想直接将它们上传到亚马逊S3,而不需要表单来进行上传,因为我将在EC2实例上临时缓存我下载的文件。我还想保留我上传的文件的链接,以便以后可以下载它们。
我本质上是在重新发布我下载的文件。
我四处看了看,但大多数解决方案似乎都涉及到与用户一起将表单上传到S3。
有没有直接上传的方案?
发布于 2015-06-27 03:12:30
您可以使用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。
发布于 2015-07-06 18:54:12
您可以简单地使用EvaporateJS来实现这一点。您还可以利用在每次上传文件后发送ajax请求将文件名更新到数据库。尽管javascript公开的细节很少,但您的存储桶不容易受到黑客的攻击,因为S3服务提供了存储桶策略。
只需在生产模式下将<AllowedOrigin>*</AllowedOrigin>设置为<AllowedOrigin>specificwebsite.com</AllowedOrigin>即可。
https://stackoverflow.com/questions/31079096
复制相似问题