Я пытаюсь сохранить подпись в базе данных s3.
- 1 - поэтому сначала я получаю изображение подписи в закодированном формате base64.
- 2 - затем я разделяю base64тег из оставшейся части строки, затем декодируйте его и сохраните в переменную.
- 3 - затем создайте имя файла.
4 - затем я открою этот файл и запишуСтрока в этом. Этот процесс создает локальный файл в моем проекте.затем я загружаю этот файл на S3 и удаляю его.
class SaveSignature(View):
def post(self,request):
config = GetConfig().config(request)
tub = config['tub']
CLOUD_FRONT_URL = config['CLOUD_FRONT_URL']
host_ = "https://"
user_id = request.session.get('user_id')
image_data = request.POST.get('d')
format, imgstr = image_data.split(';base64,')
ext = format.split('/')[-1]
data = base64.b64decode(imgstr)
file_name = str(user_id)+"_signature" +"."+ ext
user_signature = "{}/Signature/{}".format(user_id,file_name)
sign_url = host_ + CLOUD_FRONT_URL + user_signature
with open('static/user_signature/'+file_name, 'wb') as f:
f.write(data)
s3.meta.client.upload_file('static/user_signature/'+file_name,BUCKET, user_signature, ExtraArgs={'ACL':'public-read'})
, хотя этот метод работает, но я хочу загрузить напрямую, не создавая дополнительный файл и не записывая для него дополнительный код.Но я не могу понять, как это сделать!