首页 > 解决方案 > 提供 ServerSideEncryption 以从 AWS S3 下载文件

问题描述

我必须将数据从 redshift 导出到本地路径,这应该使用 Airflow 中的 PostgresOperator 完成。因此,分两步执行此操作。

Step1:执行卸载命令,将数据导出到 AES256 加密的 S3 存储桶。

Step2:我正在从这个 s3 存储桶下载数据到本地路径。由于数据是 AES256 加密的,我不知道如何通过提供“ServerSideEncryption”来下载

我正在使用以下方法下载文件。

s3_client.download_file(Bucket=bucket, Key=s3_key,Filename=local_path, ExtraArgs={'ServerSideEncryption':'AES256'})

它会抛出一个错误,提示无效密钥“ServerSideEncryption”和 ExtraArgs 密钥应该在['VersionId', 'SSECustomerAlgorithm', 'SSECustomerKey', 'SSECustomerKeyMD5', 'RequestPayer'].

如果我不提供 ServerSideEncryption,ITbotocore.exceptions.ClientError: An error occurred (404) when calling the HeadObject operation: Not Found

标签: amazon-web-servicesamazon-s3amazon-redshift

解决方案


推荐阅读