具有自定义标头的S3临时签名URL而不将对象元数据修改为磁盘

时间:2012-05-01 11:40:00

标签: ruby-on-rails ruby amazon-s3 amazon-web-services

我有一个包含任意命名文件的存储桶和一个ruby脚本,它会生成一个在2天后过期的签名URL,但我需要添加一个内容处理标题以将文件名更正为所需的格式。

abritrarily(使用数据库中的主键)来防止文件名冲突

是否可以更改URL以使其添加内容处置标头而不修改文件content-disposition标头并将其保存在存储桶中?

2 个答案:

答案 0 :(得分:2)

如果您使用url_for()中的AWS::S3::S3Object类的实例方法AWS SDK for Ruby来生成Amazon S3个对象的预签名网址,则可选{{1 hash允许您指定用于生成URL的其他选项,其中包含所需的options标题:

  

response_content_disposition (字符串) - 设置Content-Disposition   返回时执行HTTP GET时响应的标头   URL。

答案 1 :(得分:0)

如果有人在寻找JavaScript示例:

s3.getSignedUrl(
  'getObject',
  {
    Bucket: 'foo',
    Key: 'bar',
    ResponseContentDisposition: 'attachment; filename="bar"'
  },
  (error, signedURL) => {
    console.log(signedURL);
  }
);