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

时间:2014-01-09 02:18:58

标签: amazon-web-services amazon-s3

我正在开发一个应用程序,我将在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

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

1 个答案:

答案 0 :(得分:6)

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