我正在使用Amazon S3来存储和提供用户帐户的用户内容。我需要能够以内联方式提供文件(有时图片的网址将在博客文章中等)或下载。默认情况下,当将文件上传到我的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)
答案 0 :(得分:2)
万一有人偶然发现这个旧帖子,亚马逊的API现在允许更改存储在S3上的文件的内容处理。 Read the announcement here.
答案 1 :(得分:1)
我相信Content-Disposition是在上传时设置的,所以如果您不希望每个文件的两个副本都有自己的Content-Disposition,一种方法是使用send_file从控制器流式传输它 http://api.rubyonrails.org/classes/ActionController/Streaming.html#method-i-send_file