【发布时间】:2019-01-03 22:12:27
【问题描述】:
我编写了以下 Python 脚本来将 S3 存储桶中的 ALL 文件下载到我的当前目录中:
import boto3
import botocore
import os
from boto3.session import Session
ACCESS_KEY='AWS_IAM_AccessKey'
SECRET_KEY='AWS_IAM_SecretKey'
session = Session(aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_KEY)
myBucket = s3.Bucket('S3_bucketName')
for object in thamesBucket.objects.all():
myBucket.download_file(object.key, os.path.join(os.curdir, os.path.basename(object.key)))
我想进一步增强此脚本,使其仅下拉在过去 24 小时内生成的 S3 文件(使用 Last Modified 列值?)而不是全部。
【问题讨论】:
-
如果您的目标是获取自上次下载后添加的文件,您可以考虑使用AWS Command-Line Interface (CLI)
aws s3 sync命令。它只会复制自上次sync以来已更改/修改的文件。 -
旁注:建议从不将 AWS 凭证放在源代码中。相反,将它们存储在
~/.aws/credentials文件中。 (一种简单的创建方法是使用aws configure命令。)如果您在 Amazon EC2 实例上运行代码,则应改为为实例分配 IAM 角色,并且无需凭证文件即可自动提供凭证。
标签: python python-3.x amazon-web-services amazon-s3