) До сих пор я прошел через множество итераций этой проблемы, искал множество различных примеров и просмотрел всю документацию.
Я пытаюсь объединить 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%.