Как сохранить текстовый файл с кодировкой utf-8 в корзине AWS S3? - PullRequest
0 голосов
/ 28 апреля 2018

Мне просто интересно, как записать текстовый файл с кодировкой utf-8 непосредственно в AWS S3 без необходимости сохранять этот текстовый файл (временно или нет) на локальном компьютере. Чтобы быть конкретным, как показано ниже, я думаю, что мне удалось сохранить файл, который был загружен из Интернета и был проанализирован с библиотекой BeautifulSoup локально, и сохранить этот файл в назначенной корзине S3.

import codecs
import boto3
import requests
from bs4 import BeautifulSoup

url = 'https://www.sec.gov/Archives/edgar/data/732247/0000950144-00-012588.txt'
r = requests.get(url)

soup = BeautifulSoup(r.content, "lxml")
text = soup.get_text("\n")

txt_path = 'report.txt'

# Saving the parsed file into local directory in the name of 'report.txt'
with codecs.open(txt_path, 'w', encoding='utf-8') as fout:
    fout.write(text)


# Loading the parsed file 'report.txt' and saving it into AWS S3
# with the 'my-bucket-name' as the bucket name 
# and 'report_s3.txt' as the file name in that bucket
s3 = boto3.resource('s3')
with codecs.open('report.txt', 'rb', encoding='utf-8') as fin:
    text = fin.read()
s3.Object('my-bucket-name', 'report_s3.txt').put(Body=text)

Но я бы хотел пропустить этот процесс локального сохранения и сразу сохранить этот проанализированный файл с кодировкой utf-8 в корзину S3. Есть ли хорошая идея сделать это? Заранее спасибо!

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