Загружать данные в корзину S3, не сохраняя их на диск

Существует метод boto3 upload_file(Filename='path'), который использует параметр Filename для чтения файла с диска и загрузки его в корзину. Можно ли загрузить данные, не сохраняя их на диск?


person Mykola Zotko    schedule 16.11.2020    source источник
comment
Отвечает ли это на ваш вопрос? Flask Загрузить изображение на S3 без его сохранения в локальную файловую систему   -  person janpeterka    schedule 16.11.2020
comment
@janpeterka Да, но для Flask это особый случай.   -  person Mykola Zotko    schedule 16.11.2020
comment
Важная часть, использование put_object() вместо upload_file() такое же   -  person jordanm    schedule 16.11.2020


Ответы (1)


Сохранить текстовый файл:

obj = 'some string'
bucket = 'my-bucket'
key = 'prefix/filename.txt'

boto3.client('s3').put_object(Body=obj, Bucket=bucket, Key=key)

Сохраните файл csv из кадра данных pandas:

df = my-dataframe
bucket = 'my-bucket'
key = 'prefix/filename.csv'

csv_buffer = io.StringIO()
df.to_csv(csv_buffer)
boto3.client('s3').put_object(Body=csv_buffer.getvalue(), Bucket=bucket, Key=key)
person Jonathan Leon    schedule 16.11.2020