2010-01-28 3 views
2

Я написал крошечную веб-аппликацию на питоне, которая позволяет мне просматривать мои ведра S3. Веб-приложение работает внутри Google App Engine.Легкий способ загрузки файлов на S3 через HTTP-форму

Теперь я хочу создать html-форму для этой веб-приложения, которая позволяет загружать файл в ведро.

Эти данные уже находятся в форме: AWSAccessKeyId и название ведра.

Я хочу, чтобы ИМЯКЛАВИШИ это имя файла, который выбирается пользователем с помощью <input name="file" type="file">

Другая проблема заключается в: Можно ли создать содержание (скрытых) входных тегов policy и signature перед файл выбран?

Я хочу решить эту проблему только с помощью HTML и Python. Нет JavaScript.

Возможно ли это?

ответ

4

Прочитайте документацию для разработчиков от Amazon: Browser Uploads to S3 using HTML POST Forms

Существует примеры Python там, чтобы вы начали.

+0

Я знаю этот документ. Но у меня все еще есть одна проблема. Мне нужно два шага, чтобы загрузить файл на S3. Во-первых, у меня есть HTML-форма, в которой выбран файл. Во-вторых, мне нужно Base64-кодировать документ политики и вычислять значение подписи с помощью python. Эти значения включены в форму html (?), После чего пользователь должен снова отправить документ. Пользователю необходимо «отправить» файл два раза? – Neverland

+1

Снова прочитайте раздел о имени поля 'key'. Вы можете использовать специальный токен '$ {filename}', чтобы S3 установил имя файла, которое пользователь загружает, поэтому нет необходимости отправлять файл дважды. Вам нужно только один раз подписать форму и использовать ее снова и снова, пока вы не нажмете установленную вами дату истечения срока действия. – dar

+0

Теперь у меня есть эта строка внутри моего документа политики: ["eq", "$ key", "$ {filename}"]. Но в результате получилось следующее: AccessDenied: недействителен в соответствии с политикой: состояние политики не выполнено: ["eq", "$ key", ""] – Neverland

 Смежные вопросы

  • Нет связанных вопросов^_^