可以在AWS S3存储桶中找出文件依赖关系吗?

时间:2017-12-30 03:54:47

标签: amazon-s3 makefile aws-cli

源目录包含大量大型图像和视频文件。

需要使用aws s3 cp命令将这些文件上载到AWS S3存储桶。例如,作为此构建过程的一部分,我将我的图像文件my_image.jpg复制到S3存储桶,如下所示:aws s3 cp my_image.jpg s3://mybucket.mydomain.com/

我手动将此副本发送到AWS是没有问题的。我也可以编写脚本。但我想使用makefile上传我的图像文件my_image.jpg iff 我的S3存储桶中的同名文件早于我的源目录中的文件。

通常make非常擅长基于文件日期的这种依赖性检查。但是,有没有办法告诉make从S3存储桶中的文件中获取文件日期,并使用它来确定是否需要重建依赖项?

2 个答案:

答案 0 :(得分:6)

AWS CLI有一个s3 sync命令,可以为您处理相当数量的此命令。来自the documentation

  

如果出现以下情况,则需要复制s3对象:

     
      
  • 两个s3对象的大小不同,
  •   
  • 来源的上次修改时间比目的地的上次修改时间更新,
  •   
  • 或指定存储区和前缀目标下的s3对象不存在。
  •   

答案 1 :(得分:2)

我认为你需要让S3看起来像一个文件系统来使这个工作。在Linux上,通常使用FUSE来构建这样的适配器。 Here are some项目将S3呈现为本地文件系统。我没有尝试过任何一种,但它似乎是要走的路。