4

我正在使用 Amazon S3 为用户帐户存储和提供用户内容。我需要能够以内联方式提供文件(有时图像的 url 将在博客文章等中)或作为下载提供。默认情况下,将文件上传到我的 S3 存储桶时,该文件没有设置 Content-Disposition(这很好,因为只要浏览器识别文件 MIME,它就会内联服务器),但有时我需要设置 Content-处理附件以下载文件。

使用 Rails/S3 gem,是否可以向 Amazon 发送请求,以指定该文件应在 Content-Disposition 设置为附件(或反之亦然)的情况下发送?可能它可以使用某种令牌(参考请求的令牌,通常用于经过身份验证的读取……只是想知道在这种情况下这是否也可以帮助我)?使用 S3 gem,我知道如何为每个文件设置和保存 Content-Disposition,但这会导致文件始终被下载并且不能用作内联图像(未经测试)。

缺少两个文件(一个有和没有 Content-Disposition='download' 集),有什么想法吗?提前致谢。

PS我使用rails Rails 2、attachment_fu和aws-s3 gem(我不能改变这些,因为上面提到的应用程序是一个更大的、已经运行的应用程序的一部分,我知道aws-s3和aws_right gem之间存在冲突)

4

2 回答 2

4

以防万一有人偶然发现这篇旧帖子,亚马逊的 API 现在允许更改存储在 S3 上的文件的 Content-Disposition。在此处阅读公告。

于 2012-05-11T02:00:07.613 回答
1

我相信 Content-Disposition 是在上传时设置的,所以如果你不想要两个文件副本,每个副本都有自己的 Content-Disposition,一种方法是使用 send_file http://api.rubyonrails从控制器流式传输它.org/classes/ActionController/Streaming.html#method-i-send_file

于 2011-02-09T03:22:42.280 回答