У меня есть несколько изображений в базе данных mysql, которые мне нужно перенести в корзину aws s3. Я могу загружать файлы с диска успешно, но не напрямую из базы данных. Текущий код выглядит так:
import pymysql
import PIL.Image
import boto3
import botocore
from datetime import datetime
db = pymysql.connect('localhost', 'root', '123456', 'test_db')
cursor = db.cursor()
query = """select user_id, doc_type, images_pic from user_data where images_pic <> '' limit 5;"""
data = cursor.execute(query)
r = cursor.fetchall()
r = list(r)
bucket_name = 'my_buck'
s3 = boto3.client('s3')
#s3.upload_file('testfile.txt', bucket_name, 'testfile.txt') uploads successfully
for row in r:
folder = "%s" % row[0]
doc_type = ("%s" % row[1]).lower()
uimg = io.BytesIO(row[2])
img_final = PIL.Image.open(uimg)
#folder = bucket_name.new_key(user_id) this gives error "str object has no attribute 'new_key'"
s3.upload_file((folder + '/' + img_final + '.' + doc_type), bucket_name, (folder + '/' + img_final + '.' + doc_type))
Я могу сохранить изображения из базы данных на диск, а затем загрузить их в корзину, но я хочу сделать это напрямую, без сохранения на диск.
Любая помощь приветствуется.