直接从AWS S3下载时更改用户的文件名

Ada*_*ley 5 amazon-s3 amazon-web-services

我正在开发一个应用程序,我将在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
Run Code Online (Sandbox Code Playgroud)

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

Cha*_*lke 6

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

  • 谢谢.对于其他遇到这篇文章的人来说,仅供参考.这是一个SO问题,向您展示如何做到这一点.http://stackoverflow.com/questions/11138336/how-do-i-add-or-modify-the-content-disposition-of-an-existing-object-in-amazon-s (2认同)