![](/img/trans.png)
[英]Need to upload/copy ALL files from specific local directory to AWS S3 bucket using AWS CLI on Ubuntu 22.04
[英]AWS S3, Deleting files from local directory after upload
我在一個驅動器的不同目錄中有備份文件。 這些目錄中的文件可能很大,高達 800GB 左右。 所以我有一個批處理文件,其中包含一組腳本,可以將文件上傳/同步到 S3。
請參見下面的示例:
aws s3 sync R:\DB_Backups3\System s3://usa-daily/System/ --exclude "*" --include "*/*/Diff/*"
上傳時間可能會有所不同,但到目前為止還不錯。
我的問題是,我該如何編輯腳本或創建一個新腳本來檢查 s3 存儲桶中的文件是否已上傳,並且只有在文件已上傳后才從本地驅動器中刪除它們,如果沒有將它們留在驅動器上?
(理想情況下它會檢查每個文件)
我不熟悉 aws s3 或可以執行此操作的 aws cli 命令? 如果我說清楚了或者您需要更多詳細信息,請告訴我。
任何幫助將不勝感激。
最好將mv
與--recursive
參數一起用於多個文件
當使用參數--recursive
傳遞時,以下mv
命令遞歸地將指定目錄下的所有文件移動到指定的存儲桶和前綴,同時使用--exclude
參數排除一些文件。 在此示例中,目錄 myDir 具有文件 test1.txt 和 test2.jpg:
aws s3 mv myDir s3://mybucket/ --recursive --exclude "*.jpg"
輸出:
move: myDir/test1.txt to s3://mybucket2/test1.txt
希望這可以幫助。
正如@ketan 的回答所示,Amazon aws
客戶端無法進行批量移動。
您可以改用 WinSCP put -delete
命令:
winscp.com /log=S3.log /ini=nul /command ^
"open s3://S3KEY:S3SECRET@s3.amazonaws.com/" ^
"put -delete C:\local\path\* /bucket/" ^
"exit"
您需要對憑據中的特殊字符進行 URL 編碼。 WinSCP GUI 可以為您生成一個 S3 腳本模板,就像上面那個一樣。
或者,從 WinSCP 5.19 開始,您可以使用不需要任何編碼的-username
和-password
開關:
"open s3://s3.amazonaws.com/ -username=S3KEY -password=S3SECRET" ^
(我是 WinSCP 的作者)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.