gpt4 book ai didi

python - 通过 boto3 下载 S3 存储桶对象时遇到问题。错误 403 头部对象 : Forbidden

转载 作者:行者123 更新时间:2023-12-05 00:57:52 25 4
gpt4 key购买 nike

我知道这里还有其他关于此问题的帖子,但仍在努力寻找正确的解决方案。我正在尝试使用以下 python 脚本在 S3 存储桶(我可以访问)中下载一组特定对象。运行脚本时,第一个对象成功下载,但随后抛出此错误 (403):

botocore.exceptions.ClientError: An error occurred (403) when calling the HeadObject operation: Forbidden

见下面我的代码:

import csv
import boto3
import re
import logging
from botocore.exceptions import ClientError

prod_number_array_bq = []
prod_number_array_s3 = []
with open('bq-results-20191218-151637-rshujisvqrri.csv') as csv_file:
csv_reader = csv.reader(csv_file,delimiter=',')
line_count = 0
for row in csv_reader:
sliced = re.sub("[^0-9]", "", str(row))
prod_number_array_bq.append(sliced)

s3 = boto3.resource('s3')
bucket = s3.Bucket('********')

for key in bucket.objects.all():
sliced = re.sub("[^0-9]", "", str(key.key))
if((set(sliced) & set(prod_number_array_bq))!=""):
bucket.download_file(key.key,sliced + '.txt')

我们将不胜感激:)

谢谢

最佳答案

通常当您在 HeadObject 上看到 403 时,尽管拥有 s3:GetObject 权限,这是因为没有 s3:ListObjects 权限为存储桶提供并且您的 key 不存在。这是一种安全措施,可防止暴露有关哪些对象在您的存储桶中或不在您的存储桶中的信息。当您同时拥有存储桶中对象的 s3:GetObject 权限和存储桶本身的 s3:ListObjects 权限时,对不存在的键的响应是404“没有这样的 key ”响应。如果您只有 s3:GetObject 权限并请求不存在的对象,则响应为 403“访问被拒绝”。

关于python - 通过 boto3 下载 S3 存储桶对象时遇到问题。错误 403 头部对象 : Forbidden,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59615713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com