我有一个包含zip文件的s3存储桶。我有一个脚本,将zip文件下载到我的本地服务器,解压缩并上传到另一个s3存储桶。如何设置水印,以便我知道我下载的最后一个文件是什么,所以我不需要在本地保存所有文件或每次脚本运行时下载所有文件?我正在使用aws sync命令,据我所知,应该只复制新文件,对不对?
aws s3 sync $gcs3$gcRegion/$gcTech/$gcPrinterFamily/$gcPrinterType/$gcPrinterName/ $dir
AWS Command-Line Interface (CLI) aws s3 sync
命令将复制目标中不存在的任何文件(类型)。
因此,您需要保留所有以前下载的文件,或者您需要另一种方法来跟踪下载的文件。
相反,我建议您编写自己的程序:
LastModified
时间戳下载S3存储桶中的所有文件因此,程序需要记住上次下载文件的时间,但不需要记住它下载的文件。注意 - S3以UTC格式存储时间,因此您需要转换时区。或者,只需记住您下载的文件的最高LastModified
值。
要获取自某个LastModified
日期以来的文件列表,您可以使用AWS CLI:
aws s3api list-objects --bucket jstack-a --query "Contents[?LastModified>='2019-04-11'].[Key]" --output text
但是,我建议为上述活动编写一个Python程序,因为编写命令行脚本会更容易。