对 S3 中的选定文件更改 meta-data
Change meta-data on selected files in S3
我发现了一堆扩展名错误的图像文件。由于网站的制作方式,它们必须具有 .jpg
扩展名。但其中一些是 png
个文件。
所以我制作了一个假 JPEG 文件的快速列表 ls public/assets/image/*.jpg | xargs file --mime | grep -v jpeg
并找到了 ,其中包含如何使用 aws-cli 工具更改 Cache-Control
的示例header(我要改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 中文件的 meta-data,那么我可以简单地做
cat fakeJpegs.txt | sed 's/public\/assets\/image\///' | xargs -i aws s3 sync s3://firefund-assets/'{}' s3://firefund-assets/'{}' --content-type image/png
我不想 re-upload 任何文件。在那种情况下,我可以使用 s3.console.aws.amazon.com 并手动进行更改。
我只是想偶尔有一个小脚本来做这个..
相关但建议重新上传文件。
您可以在指定新信息时将对象复制到自身上。
使用cp
命令而不是sync
命令:
aws s3 cp s3://firefund-assets/file.jpg s3://firefund-assets/file.jpg --content-type image/png
我发现了一堆扩展名错误的图像文件。由于网站的制作方式,它们必须具有 .jpg
扩展名。但其中一些是 png
个文件。
所以我制作了一个假 JPEG 文件的快速列表 ls public/assets/image/*.jpg | xargs file --mime | grep -v jpeg
并找到了 ,其中包含如何使用 aws-cli 工具更改 Cache-Control
的示例header(我要改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 中文件的 meta-data,那么我可以简单地做
cat fakeJpegs.txt | sed 's/public\/assets\/image\///' | xargs -i aws s3 sync s3://firefund-assets/'{}' s3://firefund-assets/'{}' --content-type image/png
我不想 re-upload 任何文件。在那种情况下,我可以使用 s3.console.aws.amazon.com 并手动进行更改。 我只是想偶尔有一个小脚本来做这个..
您可以在指定新信息时将对象复制到自身上。
使用cp
命令而不是sync
命令:
aws s3 cp s3://firefund-assets/file.jpg s3://firefund-assets/file.jpg --content-type image/png