我正在开发一个应用程序,它将在S3上存储文件。由于文件名可以不同,因此我必须将文件重命名为存储桶中的通用文件,这样我以后才能知道要使用哪个文件名。
如果要允许用户通过我的Web应用程序下载,则可以在将文件名发送给用户之前将其改回原先的名称。但是,我希望用户使用如下所示的临时安全 token 直接下载文件。
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
但是,当将文件下载回原始文件名时,如何更改用户看到的文件名?
最佳答案
将S3对象的 Content-disposition 属性设置为attachment; filename="nameyouwant"
,其中nameyouwant当然是您希望下载的文件默认具有的名称。当用户使用Web浏览器从S3下载时,浏览器将使用Content-disposition header 中的名称代替URL。
关于amazon-web-services - 直接从AWS S3下载时更改用户的文件名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21010502/