создание файла CSV и последующее прикрепление к электронному письму с помощью boto3 - PullRequest
0 голосов
/ 05 августа 2020

У меня есть отчет, который я создал. он в основном извлекает данные, манипулирует ими, чем отправляет отчет в корзину S3. Я хотел бы знать, как я могу извлечь этот CSV-файл из корзины S3 и отправить его по электронной почте. Сначала я отправляю его на S3 для долгосрочного хранения.

other code
..
..
..
 copy_source = {'Bucket': target, 'Key': 'mycsv.csv' }
    s3client.copy_object(CopySource = copy_source, Bucket = target, Key = dated_file )
    s3client.delete_object(Bucket = target, Key = 'generic.csv')

Я хотел бы прикрепить csv, расположенный в ведре s3, к boto3, что-то пошло не так.

возможно ли это?

позволяет сказать target = s3: // mys3bucket

UPDATE ::: Итак, я нашел решение, используя boto3 s3_object.get_object

, это отправит электронное письмо и прикрепит вложение к электронная почта.

sg = MIMEMultipart()
new_body = "The following EC2 server are up and running"
text_part = MIMEText(new_body, _subtype="html")
msg.attach(text_part)

filename='generic.csv'
msg["To"] = "randal1981@gmail.com"
msg["From"] = "randal1981@gmail.com"
s3_object = boto3.client('s3', 'us-west-1')
s3_object = s3_object.get_object(Bucket=target, Key=filename)
body = s3_object['Body'].read()

part = MIMEApplication(body, filename)
part.add_header("Content-Disposition", 'attachment', filename=filename)
msg.attach(part)
ses_aws_client = boto3.client('ses', 'us-west-1')
ses_aws_client.send_raw_email(RawMessage={"Data" : msg.as_bytes()})

1 Ответ

0 голосов
/ 05 августа 2020

Я опубликовал в редакции исходного вопроса, как я действительно смог отправить вложение по электронной почте. что я пытался понять, так это как вытащить насадку из S3. Я не очень хорошо объяснил. Я нашел аналогичное решение, используя вызов boto3: s3_object.get_object. Это хорошо сработало с моим кодом. Надеюсь, это поможет кому-то другому ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...