2014-10-05 28 views
1

我在AWS S3 bucket上有50000個以上的文件(音頻,圖像,pdf)。現在我遇到了Firefox的問題。音頻文件不會在Firefox上播放,因爲它們的內容類型。在它運作良好之前。當我從二進制/八位字節流改變內容類型音頻/ MPEG我如何才能更改音頻文件的AWS S3內容類型

音頻文件,做工不錯。

爲所有現有文件分配默認內容類型(二進制/八位字節流)。

我也試過s3桶資源管理器工具,但沒有選項可以更改內容類型專門用於音頻文件

如何僅更改音頻文件的內容類型?

請問有沒有aws php sdk的例子?

在此先感謝

+0

我通過s3cmd命令解決了這個問題。 :) – Rajaraman 2014-10-06 11:20:06

+0

你可以自己回答你的問題 - 它可能是值得把你如何解決答案的細節,以便其他人可以利用這些知識。 – Krease 2014-10-07 05:45:18

+0

這是代碼s3cmd - 遞歸修改--acl-public --add-header ='Cache-Control:max-age = 94608000'--add-header ='content-type':'audio/mpeg' - -exclude'*'--include'* .mp3's3:// bucket-name/ – Rajaraman 2014-10-07 06:51:32

回答

3

我也遇到了這個問題,並且撰文指出,這是一個使用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從進程中排除所有文件,但與指定模式匹配的文件除外。下面是另一個例子,在你的水桶設置所有的CSS文件爲文本/ CSS:

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

如果您不能確定指定什麼樣的content-type爲您的特定類型的文件,看看最常見的MIME類型名單:http://hul.harvard.edu/ois/systems/wax/wax-public-help/mimetypes.htm

+0

此解決方案適用於我。有一件事要注意:如果你存儲敏感數據,我建議加入'--encrypt'以便使用S3服務器端加密。 – Slickrick12 2016-04-13 16:06:35