【问题标题】:How to copy only updated files/folders from aws s3 bucket to local machine?如何仅将更新的文件/文件夹从 aws s3 存储桶复制到本地机器?
【发布时间】:2020-12-10 23:35:15
【问题描述】:

我需要将某些文件从 S3 存储桶复制到本地计算机。以下是我的要求需要注意的要点:

  • 文件根据日期文件夹保存在 S3 存储桶中。
  • 文件位于csv.gz 扩展名中,我需要将其更改为csv 并将其复制到我的本地计算机。
  • 它每分钟都在更新,我只需要复制新文件并处理它。处理后的文件无需再次复制。

我曾尝试使用同步文件夹,但在处理文件后,文件名被重命名,并且 csv.gz 文件再次与本地文件夹同步。

我打算使用一些计划任务来控制。

【问题讨论】:

  • 由于日期文件夹中有文件,您可以用 Python 编写脚本,然后从 S3 中提取最新文件。您可以处理文件并更改脚本中的扩展名并保存。
  • 但是我可以直接在 aws s3 存储桶文件上运行脚本吗?我不确定这一点。请帮助@ChandanKumar
  • 是的,你需要使用boto3。这是文件:boto3.amazonaws.com/v1/documentation/api/latest/reference/…
  • 您似乎对 AWS 很陌生。我建议你通过这个document 完成安装和配置然后开始检查 S3 boto3 API,我最初分享的链接。

标签: amazon-web-services amazon-s3 aws-lambda gzip


【解决方案1】:

Amazon S3 是一种存储服务。它无法为您“处理”文件。

如果您希望更改文件的内容(例如从.csv.gz 转换为.csv),您需要在本地计算机上自行完成。

AWS Command-Line Interface (CLI)aws s3 sync 命令可以轻松复制自上一个sync 以来已更改/添加的文件。但是,如果您在本地更改文件(解压缩),那么您可能需要编写自己的程序以从 Amazon S3 下载。

有适用于流行编程语言的 AWS 开发工具包。您还可以通过网络搜索找到使用 Amazon S3 的示例代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 2022-01-11
    • 2017-11-23
    相关资源
    最近更新 更多