小编Lew*_*ers的帖子

通过 boto3 下载 S3 存储桶对象时遇到问题。错误 403 HeadObject:禁止

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

botocore.exceptions.ClientError: An error occurred (403) when calling the HeadObject operation: Forbidden
Run Code Online (Sandbox Code Playgroud)

请参阅下面我的代码:

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')
Run Code Online (Sandbox Code Playgroud)

如有帮助,将不胜感激:)

谢谢

python amazon-s3 amazon-web-services boto3

5
推荐指数
1
解决办法
8235
查看次数

Python3 SMTP“连接意外关闭”

有人可以告诉我为什么我SMTPServerDisconnected("Connection unexpectedly closed")从以下代码中收到错误吗?

import smtplib

from string import Template

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

MY_ADDRESS = '---'
PASSWORD = '---'

def get_contacts(filename):
"""
Return two lists names, emails containing names and email 
addresses
read from a file specified by filename.
"""

names = []
emails = []
with open(filename, mode='r', encoding='utf-8') as contacts_file:
    for a_contact in contacts_file:
        names.append(a_contact.split()[0])
        emails.append(a_contact.split()[1])
return names, emails

def read_template(filename):
"""
Returns a Template object comprising the contents of the 
file …
Run Code Online (Sandbox Code Playgroud)

smtp python-3.x

3
推荐指数
1
解决办法
1万
查看次数