Helllo,的Python Boto3:錯誤時,試圖從AWS S3
我試圖下載從S3存儲是非常大的所有文件下載文件。我連接到S3這樣的:
client = boto3.client('s3',
aws_access_key_id=tempCredentials.credentials.access_key,
aws_secret_access_key = tempCredentials.credentials.secret_key,
aws_session_token=tempCredentials.credentials.session_token)
從這個,我做的:
# This is going to go through and fill in the dictionary with keys
from the buckets as specified above
paginator = client.get_paginator("list_objects")
page_iterator = paginator.paginate(Bucket=bucket["Name"])
l = 0
# We are going to have an list that will hold all the keys
key_list = []
for i in page_iterator:
c = i["Contents"]
for j in c:
key_list.append(j["Key"])
for j in key_list:
download(bucket["Name"], j, "/Users/ahussain/Desktop/S3_Scrubber/" + file_name_helper(j), client)
在哪裏,我的下載功能爲:
def download (bucket_name, key, path, client):
key_name = key
print("Dowloading %s..." % str(key))
client.download_file(bucket_name, key, path)
print("Download of %s complete!" % str(key))
return key_name
什麼情況是,我經歷該桶成功並下載了大量的密鑰,但過了一段時間程序停止下載密鑰並給我出現此錯誤:
botocore.exceptions.ClientError: An error occurred (400) when calling the HeadObject operation: Bad Request
我的猜測是我的會話因我使用MFA訪問S3而過期,但我不確定。有沒有人曾經遇到過這個錯誤?
在構建客戶端時,您可以嘗試指定您的存儲桶所在的區域嗎? 'client = boto3.client('s3',region_name ='us-west-1',....' – helloV