我正在尝试使用 s3 存储桶中提供的访问密钥 ID 和秘密访问密钥下载文件https://db. humanconnectome.org https://db.humanconnectome.org。但是,即使我能够导航数据库并找到文件(因为我已通过 aws cli 配置了我的凭证),尝试下载它们会导致以下错误:
“botocore.exceptions.ClientError:调用 HeadObject 操作时发生错误(403):禁止”
使用相同的凭据,我可以浏览相同的数据库并通过 Cyberduck 等云存储浏览器手动下载文件,因此 Cyberduck 访问数据的方式不会引发 403 Forbidden 错误。
我还验证了 boto3 能够访问我的 aws 凭证,并尝试对它们进行硬编码。
我尝试下载数据的方式非常简单,并复制了 boto3 文档示例:https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-example-download-file.html https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-example-download-file.html
s3 = boto3.client('s3',
aws_access_key_id=ACCESS_KEY_ID,
aws_secret_access_key=ACCESS_KEY,)
s3.download_file(Bucket=BUCKET_NAME, Key=FILE_KEY, Filename=FILE_NAME)
这应该将文件下载到 FILE_NAME 指定的位置和文件,但会调用 403 Forbidden 错误。
下载文件时,您还需要传递存储桶区域。尝试配置region
使用 CLI 或 passregion_name
创建客户端时。
s3 = boto3.client('s3',
aws_access_key_id=ACCESS_KEY_ID,
aws_secret_access_key=ACCESS_KEY,
region_name=AWS_REGION)
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)