我發現一堆擴展名錯誤的影像檔案。由于網站的制作方式,它們必須具有.jpg擴展名。但其中一些是png檔案。
所以我做了一個假JPEG檔案的快速串列,ls public/assets/image/*.jpg | xargs file --mime | grep -v jpeg發現https://stackoverflow.com/a/25825362/205696有一個如何使用aws-cli工具更改Cache-Control標題的示例(我想更改Content-Type標題) .
根據aws s3 sync help手冊頁,語法是sync <LocalPath> <S3Uri> or <S3Uri> <LocalPath> or <S3Uri> <S3Uri>. 因為我確實想從我的機器同步任何檔案,所以我選擇了最后一種語法aws s3 sync <S3Uri> <S3Uri>。
但是這樣做:
aws s3 sync s3://firefund-assets/underathens4.jpg s3://firefund-assets/underathens4.jpg --content-type image/png
似乎沒有任何改變。underathens4.jpg 檔案仍然有System defined Content-Type image/jpeg......并且沒有任何內容寫入標準輸出。
如果我可以更改 S3 中檔案的元資料,那么我可以簡單地做
cat fakeJpegs.txt | sed 's/public\/assets\/image\///' | xargs -i aws s3 sync s3://firefund-assets/'{}' s3://firefund-assets/'{}' --content-type image/png
我不想重新上傳任何檔案。在這種情況下,我可以使用 s3.console.aws.amazon.com 并手動進行更改。我只是想偶爾有一個小腳本來做這個..
更改已上傳到 AWS S3 存盤桶的多個檔案的默認內容型別是相關的,但建議再次上傳檔案。
uj5u.com熱心網友回復:
您可以在指定新資訊時將物件復制到自身之上。
使用cp命令而不是sync命令:
aws s3 cp s3://firefund-assets/file.jpg s3://firefund-assets/file.jpg --content-type image/png
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/417391.html
標籤:
