Прямая загрузка в S3 с использованием Python / Boto / Django для создания политики

) До сих пор я прошел через множество итераций этой проблемы, искал множество различных примеров и просмотрел всю документацию.

​​Я пытаюсь объединить Plupload ( http://www.plupload.com/ ) с методом прямой публикации AWS S3 ( http://aws.amazon.com/articles/1434 ). Однако я считаю, что что-то не так с тем, как я конструирую свою политику и подпись для передачи. Когда я отправляю форму, я не получаю ответа от сервера, но мое соединение с сервером reset.

Я попытался использовать код python в примере:

import base64
import hmac, sha

policy = base64.b64encode(policy_document)

signature = base64.b64encode(
hmac.new(aws_secret_key, policy, sha).digest())

Я также попытался использовать более современную библиотеку hashlib в python. Какой бы метод я ни использовал для создания моей политики и подписи, я всегда получить значения, отличные от сгенерированных здесь:

http://s3.amazonaws.com/doc/s3-example-code/post/post_sample.html

Я прочитал этот вопрос:

Как мне сделать Plupload загружать напрямую в Amazon S3?

Но я обнаружил, что предоставленные примеры слишком сложны и не могу точно их реализовать.

Мои последние попытки заключались в использовании частей библиотеки boto:

http : //boto.cloudhackers.com/ref/s3.html#module-boto.s3.connection

Но использование метода S3Commection.build_post_form_args для меня тоже не помогло.

Если бы кто-нибудь мог предоставить подходящий пример как создать форму сообщения с помощью Python, я был бы очень признателен. Было бы неплохо даже немного понять, почему соединение всегда сбрасывается.

Некоторые предостережения:

Я бы хотел использовать hashlib, если это возможно. Я хочу получить XML-ответ от Amazon (предположительно, "success_action_status = '201'" делает это) Мне нужно иметь возможность загружать файлы большого размера, максимальный размер ~ 2 ГБ.

И последнее замечание: когда я запускаю это в Chrome, он обеспечивает прогресс загрузки, и загрузка обычно завершается с ошибкой около 37%.

5
задан Community 23 May 2017 в 12:23
поделиться