Amazon-S3
使用帶有刪除選項的 aws cli 同步包含和排除
aws s3 sync /WordProcessing/DOCUMENTS s3://mybigbucket --delete --include "*" --exclude ".DS_Store"
如果 .DS_Store 以某種方式進入 AWS S3 mybigbucket(來自以前的備份),則使用上述命令不會從目標中刪除 .DS_Store 文件,即使我手動:
rm /WordProcessing/DOCUMENTS/.DS_Store
在文件伺服器上。
我是否錯過了 aws s3 同步如何工作的邏輯?在我看來,如果 .DS_Store 已從文件伺服器上的源中刪除,它應該從 S3 儲存桶的目標中刪除它。
如果我取消 –exclude 並再次執行該命令,它會在從文件伺服器中刪除 .DS_Store 時從目標中刪除它。這似乎不對。
我採取了錯誤的方法嗎?我想要做的是每晚同步文件伺服器,讓它不會將數千個 .DS_Store 文件傳輸到 S3 儲存桶。
看起來您在第一次同步後更改了參數。
當您使用
--exclude
它時,它會從與指定模式匹配的命令中排除所有文件或對象。如果匹配,它將忽略該模式的任何操作。如果文件 (.DS_Store) 已經位於 s3 儲存桶中並且
--exclude
選項匹配它,它將忽略它。無論是更改還是從數據源中消失。你可以做:
- 在第一個和所有後續同步上使用 –exclude (這使文件在一開始就關閉 s3)
- 首先從本地主機中刪除文件,同步,然後將排除項放入(如果文件在 s3 中,這將刪除文件,然後阻止添加)
- 將 –exclude 放入並從 s3 中手動刪除文件(這將防止文件被重新添加到 s3)
參考