【问题标题】:Change filename for user when downloading directly from AWS S3直接从 AWS S3 下载时更改用户的文件名
【发布时间】:2014-01-09 02:18:58
【问题描述】:

我正在开发一个应用程序,我将在 S3 上存储文件。由于文件名可能不同,我必须将文件重命名为存储桶中的通用名称,以便我知道以后要获取哪个文件。

如果我要允许用户通过我的网络应用程序下载,我可以在将文件名发送给用户之前将其更改回来。但是我希望用户使用临时安全令牌直接下载文件,如下所示。

s3 = AWS::S3.new(
  :access_key_id => 1234,
  :secret_access_key => abcd
)
object = s3.buckets['bucket'].objects['path/to/object']
object.url_for(:get, { :expires => 20.minutes.from_now, :secure => true }).to_s

但是如何将用户在下载此文件时看到的文件名更改为原始文件名?

【问题讨论】:

    标签: amazon-web-services amazon-s3


    【解决方案1】:

    将 S3 对象的 Content-disposition 属性设置为 attachment; filename="nameyouwant" 其中 nameyouwant 当然是您希望下载的文件默认具有的任何名称。当用户使用 Web 浏览器从 S3 下载时,浏览器将使用 Content-disposition 标头中的名称而不是 URL。

    【讨论】:

    • 谢谢。仅供任何其他人看到这篇文章。这是一个 SO question,向您展示如何做到这一点。 stackoverflow.com/questions/11138336/…
    • 您也可以只使用filename="nameyouwant" 部分而不将其作为附件。这对于显示 PDF 文档很有用,然后在保存时,它将获得自定义文件名。
    猜你喜欢
    • 2020-03-05
    • 2019-01-20
    • 2019-03-04
    • 2011-02-06
    • 2017-03-29
    • 2021-11-22
    • 2021-04-11
    • 1970-01-01
    相关资源
    最近更新 更多