我正在开发一个应用程序,我将在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
但是如何更改用户在将此文件下载回其原始文件名时看到的文件名?
答案 0 :(得分:6)
将S3对象的 Content-disposition 属性设置为attachment; filename="nameyouwant"
,其中nameyouwant当然是默认情况下您希望下载的文件具有的名称。当用户使用Web浏览器从S3下载时,浏览器将使用Content-disposition标头中的名称而不是URL。