У меня есть отчет, который я создал. он в основном извлекает данные, манипулирует ими, чем отправляет отчет в корзину 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()})