【问题标题】:Upload file directly to S3 without need to use forms in Rails无需在 Rails 中使用表单,直接将文件上传到 S3
【发布时间】:2015-09-13 18:09:57
【问题描述】:

对于我的 Rails 应用程序,我从远程 URL 下载一堆文件到我的应用程序。我想直接将它们上传到 Amazon S3,不需要表单来进行上传,因为我会临时缓存我在 EC2 实例上下载的文件。 我还想保留我上传的文件的链接,以便以后下载。

我实际上是在重新发布我下载的文件。

我环顾四周,但大多数解决方案似乎都涉及与用户一起将表单上传到 S3。

有直接上传的解决方案吗?

【问题讨论】:

    标签: ruby-on-rails amazon-web-services file-upload amazon-s3


    【解决方案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

    【讨论】:

      【解决方案2】:

      您可以简单地使用EvaporateJS 来实现这一点。您还可以利用发送 ajax 请求在每次文件上传后将文件名更新到数据库。尽管 javascript 暴露了一些细节,但您的存储桶不易受到黑客攻击,因为 S3 服务提供了存储桶策略。

      只需在生产模式下将<AllowedOrigin>*</AllowedOrigin> 设置为<AllowedOrigin>specificwebsite.com</AllowedOrigin>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-29
        • 2014-08-11
        • 1970-01-01
        • 2013-02-02
        • 2011-09-01
        • 1970-01-01
        • 2015-12-22
        • 1970-01-01
        相关资源
        最近更新 更多