python - Airflow:如何将 PDF 文件从 S3 存储桶下载到 Airflow

标签 python amazon-s3 airflow

尝试了下面的代码,但收到错误“无法找到凭据” def 下载():

bucket = 'bucketname'
key = 'path and filename'
s3_resource = boto3.resource('s3')
my_bucket = s3_resource.Bucket(bucket)
objects = my_bucket.objects.filter(Prefix=key)
for obj = objects:
    path,filename = os.path.split(obj.key)
    my_bucket.download_file(obj.key, filename)

最佳答案

您需要定义 AWS 连接并使用 通过 S3Hook 实现 download_fileobj 函数。

我没有测试它,但它应该是这样的:

from tempfile import NamedTemporaryFile
from airflow.providers.amazon.aws.hooks.s3 import S3Hook
hook = S3Hook('my_aws_conn')
key_object = hook.get_key('your_path')
with NamedTemporaryFile("wb") as f:
     key_object.download_fileobj(Fileobj=f)
     f.flush()

关于python - Airflow:如何将 PDF 文件从 S3 存储桶下载到 Airflow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64873226/

相关文章:

python - 需要帮助在我的pygame代码上切换音乐背景

python - 如何使用python复制文件,重新创建目录结构?

amazon-web-services - CloudFormation 创建的 ApiGateway 的 S3 大小限制

android - 在 Android 上使用亚马逊简单存储服务 (S3)

airflow - 如何获取在 Airflow dag 中运行的任务列表

python - reshape 数据框并对每行应用计算

python - 我无法在 anaconda 环境中安装 Jupyter 和 Matplotlib

django - 将图像上传到 Django admin,进行裁剪和缩放,然后将其发送到 Amazon S3,而不在本地保存文件?

airflow-scheduler - 如何调度不同参数的DAG

python - 如何从 Airflow 中的文件执行 SQL 查询? (PostgresQL 运算符)