我遇到的问题是我需要 Content-Disposition:attachment 标题出现在每个打到我的存储桶的文件上。
在Wordpress中,我可以使用.htaccess来覆盖有问题的文件类型(视频),但这些规则并没有扩展到我的S3下载,浏览器只是试图打开而不是下载。
我需要一个自动/默认解决方案,因为我不是唯一一个上传这些文件的人(我们的工作人员通过Wordpress上传,所有上传都存储在我们的S3存储桶中)。所以使用Cloudberry或其他浏览器对这种情况没有用。我无法基于每个文件调整文件(上传过于频繁)。
有办法做到这一点吗?
(其他信息:我在Wordpress上使用“Amazon S3和Cloudfront”插件,负责将两者连接在一起。不幸的是,该网站不公开,所以我无法链接到它。)
答案 0 :(得分:7)
很遗憾没有办法在S3中为整个存储桶设置此值,而Cloudfront也只能设置缓存标头
但是在将文件上传到S3时可以set The Content-disposition parameter。
对于现有文件,您必须更改标题,因此循环遍历Bucket中的每个对象,并copy it to itself using the new headers。
我现在可以说,请将上传文件的代码发布到S3。
答案 1 :(得分:0)
首先,您需要找到将对象放入存储桶的代码。 您可以使用notepad ++在所使用的任何插件的php文件中搜索“ putObject ”。 来自另一个将文件存储到S3的WP插件的示例代码如下:
$this->s3->putObject( array(
'Bucket' => $bucket,
'Key' => $file['name'],
'SourceFile' => $file['file'],
) );
现在,只需像这样添加ContentDisposition'=>'attachment':
$this->s3->putObject( array(
'Bucket' => $bucket,
'Key' => $file['name'],
'SourceFile' => $file['file'],
'ContentDisposition' => 'attachment',
) );
就这样:)