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

Raj*_*man 4 php amazon-s3 amazon-web-services

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

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

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

我也尝试过 s3 存储桶资源管理器工具,但没有专门为音频文件更改内容类型的选项。

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

aws php sdk 有什么例子吗?

提前致谢

Wla*_*ton 7

我也遇到了这个问题,正如作者所指出的,这是使用该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>/                         \
Run Code Online (Sandbox Code Playgroud)

--recursive modify标志告诉 s3cmd 重新进入您的存储桶并找到所有要修改的文件;--acl-public打开修改过的文件供公众访问;--add-header='Cache-Control设置缓存可以保留文件的时间(以秒为单位)(因此,如果文件没有更改,从您的存储桶中获取文件的人将不需要再次下载它)。--exclude '' --include 'mp3'指示 s3cmd 从进程中排除所有文件,但与指定模式匹配的文件除外。这是另一个示例,将存储桶中的所有 css 文件设置为 text/css:

s3cmd --recursive modify --add-header='content-type':'text/css' \
      --exclude '' --include '.css' s3://<your-bucket-name>/
Run Code Online (Sandbox Code Playgroud)

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