从s3存储桶下载时如何设置水印

问题描述 投票:-1回答:1

我有一个包含zip文件的s3存储桶。我有一个脚本,将zip文件下载到我的本地服务器,解压缩并上传到另一个s3存储桶。如何设置水印,以便我知道我下载的最后一个文件是什么,所以我不需要在本地保存所有文件或每次脚本运行时下载所有文件?我正在使用aws sync命令,据我所知,应该只复制新文件,对不对?

aws s3 sync $gcs3$gcRegion/$gcTech/$gcPrinterFamily/$gcPrinterType/$gcPrinterName/  $dir
bash amazon-s3 watermark
1个回答
0
投票

AWS Command-Line Interface (CLI) aws s3 sync命令将复制目标中不存在的任何文件(类型)。

因此,您需要保留所有以前下载的文件,或者您需要另一种方法来跟踪下载的文件。

相反,我建议您编写自己的程序:

  • 在存储的时间戳之后,使用LastModified时间戳下载S3存储桶中的所有文件
  • 存储当前时间
  • 解压缩文件并将其复制到另一个S3存储桶
  • 删除zip文件和解压缩的文件

因此,程序需要记住上次下载文件的时间,但不需要记住它下载的文件。注意 - S3以UTC格式存储时间,因此您需要转换时区。或者,只需记住您下载的文件的最高LastModified值。

要获取自某个LastModified日期以来的文件列表,您可以使用AWS CLI:

aws s3api list-objects --bucket jstack-a --query "Contents[?LastModified>='2019-04-11'].[Key]" --output text

但是,我建议为上述活动编写一个Python程序,因为编写命令行脚本会更容易。

© www.soinside.com 2019 - 2024. All rights reserved.