【问题标题】:rails controller download from aws s3从 aws s3 下载 rails 控制器
【发布时间】:2013-01-23 09:09:36
【问题描述】:

我正在尝试构建一种非常简单的方法,让我的用户通过我的网站从 aws 下载音频内容。这是流程:

  1. 我给用户一个下载链接。例如:www.mysite.com/foobar
  2. 用户点击链接。
  3. 在我的 rails 控制器中,我创建了一个即将到期的 aws s3 url,并自动开始从该 url 下载音频内容。
  4. 用户的浏览器应该询问用户是否保存文件。如果用户同意保存文件,我希望回调我的 rails 应用程序以记录用户实际下载了文件。

因此,从用户的角度来看,我希望该过程像转到我确定的 url 一样简单,并在出现提示时接受下载文件。

在后台,我希望对用户隐藏 aws s3 url,并且我希望在用户接受下载后可以灵活地编写回调逻辑。

实现这一目标的推荐方法是什么?

【问题讨论】:

    标签: ruby-on-rails controller amazon-s3 download


    【解决方案1】:

    解决此问题的最佳方法是创建一个生命周期非常短(10 分钟?)的 S3 URL,并将重定向返回到 S3 URL。这确实会向用户公开 S3 url,但不是漏洞。

    如果您想隐藏 S3 URL,则需要通过您的服务器代理下载,这很昂贵并且会长时间消耗工作进程。我不推荐这样做,但这是隐藏 S3 资源的唯一方法。

    此外,如果触发下载与视图很重要,则需要设置 Content-Disposition 标头以触发附件下载:

      Content-Disposition: attachment; filename="fname.ext"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      相关资源
      最近更新 更多