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

标签 amazon-web-services amazon-s3

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

如果我允许用​​户通过我的网络应用程序下载,我可以在将文件名发送给用户之前改回文件名。但是我希望用户使用临时安全 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 对象的 内容配置属性(property)到attachment; filename="nameyouwant"其中,nameyouwant 是您希望下载的文件默认使用的任何名称。当用户使用 Web 浏览器从 S3 下载时,浏览器将使用 Content-disposition header 中的名称而不是 URL。

关于amazon-web-services - 直接从 AWS S3 下载时更改用户的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21010502/

相关文章:

amazon-s3 - 如何通过 CloudFlare 从 S3 提供文件

python-3.x - 如何使用python从S3存储桶下载所有文件而不考虑文件 key

python - 亚马逊广告 API ItemSearch : Get more than 10 pages/100 results?

amazon-web-services - 配置 CloudWatch Events 以使用 Terraform 将输入发送到 Lambda 函数

java - 如何将数据从服务器放到 Kinesis Stream

amazon-s3 - 什么是 AWS S3 中的数据传出?

amazon-s3 - 如何正确设置 IAM 执行角色和存储桶策略以将 lambda 写入公共(public)读取 S3 存储桶?

ruby-on-rails - 亚马逊S3 : how to combine all images into a video?

amazon-web-services - Terraform 刷新状态时出错 : BucketRegionError: incorrect region

javascript - 通过 S3 从 Amazon CloudFront 提供 gzip 后的 CSS 和 JavaScript