Пустой файл при загрузке в корзину s3 в лямбде с multipart/form-dataPython

Программы на Python
Anonymous
Пустой файл при загрузке в корзину s3 в лямбде с multipart/form-data

Сообщение Anonymous »

В моей лямбде я пытаюсь сохранить файл в ведре s3, который отправляется с типом контента multipart/form-data.
Я использую cgi.FieldStorage для анализа. >
Файл сохранен и содержит правильное количество страниц, но они пусты. Есть идеи, почему?
Вот мой код:
def get_file_from_request_body(headers, body):
fp = BytesIO(bytes(body, "utf-8"))
environ = {"REQUEST_METHOD": "POST"}
headers = {
"content-type": headers["Content-Type"],
"content-length": len(body)
}

filename = ""
file = ""
fs = FieldStorage(fp=fp, environ=environ, headers=headers)
if "fileName" in fs:
filename = fs["fileName"].filename
file = fs["fileName"].value
logger.info(filename)
return [filename, file]

def lambda_handler(event, context):

filename, file = get_file_from_request_body(
headers=event["headers"], body=event["body"]
)

s3_response = s3_client.put_object(Bucket=bucket_name, Key=filename, Body=file)

Вот мое событие["body"]:
'body': '----------------------------682889305252363295194753\r\nContent-Disposition: form-data; name="fileName"; filename="testfile15.pdf"\r\nContent-Type: application/pdf\r\n\r\n%PDF-1.4\n%äüöß\n2 0 obj\n\nstream\nx��]K��\x11�ϯ�s��\x12)�@À��>��\x009\x04�e�[��%\x7f?⣪�")�{�]�\x03b�ٶM��b���=����~����4l\x7f9�^Ƨ՚���_���OO�N�m����o���ܼ}�,�6��?���a��������`N�u\x18�?�`O�������l�?����:��3?����G��:\\�Sa����\x04�S�=���~z����]��6�/}�A\x1fok�!�fLZ-R���~�(Hd�?��ω(�Ɨ����\x1a_�?��t�c�1L\x15\t̤D\x1a���N3���\x08c��g��\x1e\r�0.��\x009\x04�e�[��%\x


Подробнее здесь: https://stackoverflow.com/questions/717 ... -form-data

Вернуться в «Python»