簡體   English   中英

AWS S3,上傳后從本地目錄中刪除文件

[英]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.

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