我需要将压缩文件从一个 AWS S3 文件夹复制到另一个文件夹,并希望将其作为计划的 AWS Glue 作业。我找不到这样一个简单任务的例子。如果您知道答案请帮忙。答案可能就在 AWS Lambda 或其他 AWS 工具中。
非常感谢!
您可以这样做,并且可能有一个使用 AWS Glue 的理由:如果您有链接的 Glue 作业并且glue_job_#2
成功完成后触发glue_job_#1
.
下面的简单 Python 脚本从一个 S3 文件夹中移动一个文件 (source
)到另一个文件夹(target
) 使用boto3
库,并可选择删除其中的原始副本source
目录。
import boto3
bucketname = "my-unique-bucket-name"
s3 = boto3.resource('s3')
my_bucket = s3.Bucket(bucketname)
source = "path/to/folder1"
target = "path/to/folder2"
for obj in my_bucket.objects.filter(Prefix=source):
source_filename = (obj.key).split('/')[-1]
copy_source = {
'Bucket': bucketname,
'Key': obj.key
}
target_filename = "{}/{}".format(target, source_filename)
s3.meta.client.copy(copy_source, bucketname, target_filename)
# Uncomment the line below if you wish the delete the original source file
# s3.Object(bucketname, obj.key).delete()
参考:S3 客户端副本上的 Boto3 文档
注意:我会使用f-strings
用于生成target_filename
,但 f 字符串仅在 >= Python3.6 中受支持,并且我相信默认的 AWS Glue Python 解释器仍然是 2.7。
参考:f 弦上的 PEP
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)