[英]How to copy all files from one folder to another folder in the same S3 bucket
[英]How to copy subset of files from one S3 bucket folder to another by date
我在 AWS S3 中有一個存儲桶。 存儲桶中有兩個文件夾 - folder1 和 folder2。 我想將文件從 s3://myBucket/folder1 復制到 s3://myBucket/folder2。 但有一個轉折點:我只想復制在某個日期之后創建的文件夾 1 中的項目。 我想做這樣的事情:
aws s3 cp s3://myBucket/folder1 s3://myBucket/folder2 --recursive --copy-source-if-modified-since
2020-07-31
沒有aws-cli
命令可以在一行中為您完成此操作。 如果文件數量相對較少,比如十萬個或更少,我認為編寫 bash 腳本或使用您最喜歡的語言的 AWS SDK 是最簡單的,它列出了第一個文件夾、創建日期的過濾器並發出復制命令.
如果文件數量很大,您可以創建一個S3 清單,該清單將為您提供存儲桶中所有文件的列表,您可以從中下載並生成復制命令。 當有很多很多文件時,這將比列出更便宜和更快。
像這樣的事情可能是一個開始,使用@jarmod 關於--copy-source-if-modified-since
:
for key in $(aws s3api list-objects --bucket my-bucket --prefix folder1/ --query 'Contents[].Key' --output text); do
relative_key=${key/folder1/folder2}
aws s3api copy-object --bucket my-bucket --key "$relative_key" --source-object "my-bucket/$key" --copy-source-if-modified-since THE_CUTOFF_DATE
done
它將單獨復制每個對象,如果有很多對象,它會相當慢,但至少可以從某個地方開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.