【问题标题】:How can i change AWS S3 content type only for audio files如何仅为音频文件更改 AWS S3 内容类型
【发布时间】:2015-08-02 00:39:48
【问题描述】:

我在 AWS S3 存储桶上有超过 50000 个文件(音频、图像、pdf)。现在我遇到了 Firefox 的问题。由于内容类型,音频文件无法在 Firefox 上播放。在它运作良好之前。

当我将内容类型从 binary/octet-stream 更改为 audio/mpeg 时,音频文件效果很好。

为所有现有文件分配默认内容类型 (binary/octet-stream)。

我也尝试了 s3 存储桶资源管理器工具,但没有选项可以更改内容类型专门针对音频文件

如何仅更改音频文件的内容类型?

有没有 aws php sdk 的例子?

提前致谢

【问题讨论】:

  • 我通过 s3cmd 命令修复了这个问题。 :)
  • 您可以自行回答您的问题 - 可能值得将您如何解决问题的详细信息放入答案中,以便其他人也可以利用这些知识。
  • 这是代码 s3cmd --recursive modify --acl-public --add-header='Cache-Control: max-age=94608000' --add-header='content-type' :'audio/mpeg' --exclude '' --include '.mp3' s3://bucket-name/

标签: php amazon-web-services amazon-s3


【解决方案1】:

我也遇到了这个问题,正如作者指出的,这是使用s3cmd工具修复它的方法:

s3cmd --recursive modify                             \ 
    --acl-public                                     \
    --add-header='Cache-Control: max-age=94608000'   \
    --add-header='content-type':'audio/mpeg'         \
    --exclude '' --include '.mp3'                    \
    s3://<your-bucket-name>/                         \

--recursive modify 标志告诉 s3cmd 回避到您的存储桶中并找到所有要修改的文件; --acl-public 打开修改后的文件供公众访问; --add-header='Cache-Control 设置缓存可以保留文件的时间量(以秒为单位)(因此,如果文件未更改,从您的存储桶获取文件的人无需再次下载)。 --exclude '' --include 'mp3' 指示 s3cmd 从进程中排除所有文件,匹配指定模式的文件除外。再举个例子,把你bucket里的所有css文件都设置成text/css:

s3cmd --recursive modify --add-header='content-type':'text/css' \
      --exclude '' --include '.css' s3://<your-bucket-name>/

如果您不确定要为特定类型的文件指定哪种 content-type,请查看以下最常见的 mimetype 列表:http://hul.harvard.edu/ois/systems/wax/wax-public-help/mimetypes.htm

【讨论】:

  • 这个解决方案对我有用。需要注意的一点:如果您要存储敏感数据,我建议您也添加 --encrypt 以使用 S3 服务器端加密。
猜你喜欢
  • 1970-01-01
  • 2017-04-22
  • 2013-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-23
  • 1970-01-01
  • 2015-08-13
相关资源
最近更新 更多