AWS S3,上传后从本地目录删除文件

Kel*_*vin 3 powershell batch-file amazon-s3 amazon-web-services aws-cli

我在一个驱动器的不同目录中都有备份文件。这些目录中的文件可能很大,可达 800GB 左右。所以我有一个批处理文件,其中包含一组将文件上传/同步到 S3 的脚本。

请参阅下面的示例:

aws s3 sync R:\DB_Backups3\System s3://usa-daily/System/ --exclude "*" --include "*/*/Diff/*"

上传时间可能会有所不同,但到目前为止一切都很好。

我的问题是,如何编辑脚本或创建一个新脚本来检查 s3 存储桶中的文件是否已上传,并且仅当文件已上传时才从本地驱动器中删除它们,如果没有将它们保留在驱动器上?

(理想情况下它会检查每个文件)

我不熟悉 aws s3 或可以执行此操作的 aws cli 命令吗?如果我说得很清楚或者您需要更多详细信息,请告诉我。

任何帮助将不胜感激。

小智 5

最好是mv--recursive多个文件的参数一起使用

当传递参数 时--recursive,以下 mv 命令递归地将指定目录下的所有文件移动到指定的存储桶和前缀,同时通过 --exclude参数排除部分文件。在此示例中,目录 myDir 具有文件 test1.txt 和 test2.jpg:

aws s3 mv myDir s3://mybucket/ --recursive --exclude "*.jpg"
Run Code Online (Sandbox Code Playgroud)

输出:

move: myDir/test1.txt to s3://mybucket2/test1.txt
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。