簡體   English   中英

在 S3 中更改所選文件的元數據

[英]Change meta-data on selected files in S3

我發現一堆擴展名錯誤的圖像文件。 由於網站的制作方式,它們必須具有.jpg擴展名。 但其中一些是png文件。

所以我快速列出了偽造的 JPEG 文件ls public/assets/image/*.jpg | xargs file --mime | grep -v jpeg ls public/assets/image/*.jpg | xargs file --mime | grep -v jpeg ls public/assets/image/*.jpg | xargs file --mime | grep -v jpeg and found https://stackoverflow.com/a/25825362/205696 that has an example of how to use the aws-cli tool to change the Cache-Control header (I want to change the Content-Type header) .

根據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 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 存儲桶的多個文件的默認內容類型是相關的,但建議再次上傳文件。

您可以在指定新信息的同時將 object 復制到自身之上

使用cp命令而不是sync命令:

aws s3 cp s3://firefund-assets/file.jpg s3://firefund-assets/file.jpg --content-type image/png

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM