2011-01-09 1 views
21

Как правильно настроить Plupload так, чтобы он загружал файлы непосредственно на Amazon S3?Как сделать загрузку Plupload прямо на Amazon S3?

+4

Хотя этот вопрос был дан ответ, моя первая озабоченность в том, что, поставив все ваши данные S3 на клиенте, конечно, пользователь с плохими намерениями могут воспользоваться этой информацией. Следовательно, думая, что другие могут иметь такую ​​же озабоченность, вот статья, целью которой является решение этих вопросов: http://codeonaboat.wordpress.com/2011/04/22/uploading-a-file-to-amazon-s3 -using-an-asp-net-mvc-application-direct-from-the-users-browser/ – dazbradbury

ответ

16
  • В дополнение к condictions для ведра, ключ, и ACL, документ политики должен содержать правила имя, имя файла и success_action_status. Например:

    ["starts-with", "$name", ""], 
        ["starts-with", "$Filename", ""], 
        ["starts-with", "$success_action_status", ""], 
    

    Filename поле, которое посылает флэш-бэкенд, но бэкенд HTML5 не делает.

  • Значение multipart должно быть истинным, но это значение по умолчанию в эти дни.

  • Установка multipart_params должна быть словарем со следующими полями:

    • key
    • AWSAccessKeyId
    • acl = 'private'
    • policy
    • signature
    • success_action_status = '201'

    Установка success_action_status - 201 приводит к тому, что S3 возвращает XML-документ с кодом статуса HTTP 201. Это необходимо для работы бэкэнд-флеш-памяти. (Вспышка загружается, когда ответ пуст, а код - 200 или 204. Это приводит к ошибке ввода-вывода, если ответ является перенаправлением.)

  • S3 не понимает куски, поэтому удалите конфигурацию chunk_size вариант.

  • unique_names может быть либо истинным, либо ложным, оба работают.
+0

Вы пробовали использовать html5 plupload с Amazon. Это работает? –

+1

Alexey: yes, html5 и flash work –

+1

Прямая загрузка в s3 с html5 runtime не работает на данный момент. В настоящее время Amazon не разрешает междоменные запросы. – Bastien

4

В последнем выпуске Plupload представлен иллюстративный пример, который прекрасно показывает, как можно использовать Plupload для загрузки файлов на Amazon S3 с использованием Flash и SilverLight.

Вот свежая рецензия: Upload to Amazon S3

+1

Звучит неплохо, я его не нашел, я вижу только общие примеры, не могли бы вы предоставить ссылку – Amala

+0

Проверить примеры/jquery/s3.php. – jayarjo

+6

Ссылка для всех остальных: https://github.com/moxiecode/plupload/blob/master/examples/jquery/s3.php – iwasrobbed

1

Если вы используете Rails 3, пожалуйста, проверьте мои примеры проектов:

Пример проекта с использованием Rails 3, Flash и MooTools на основе FancyUploader загрузить непосредственно до S3: https://github.com/iwasrobbed/Rails3-S3-Uploader-FancyUploader

Образец проекта с использованием Rails 3, Flash/Silverlight/GoogleGears/BrowserPlus и JQuery на основе Plupload для загрузки непосредственно на S3: https://github.com/iwasrobbed/Rails3-S3-Uploader-Plupload

1

Я хочу заметить, что не забудьте загрузить crossdomain.xml на ваш хост s3, а также если у вас есть URL-адрес success_action_redirect, вам также нужно иметь файл crossdomain.xml в этом домене. Я потратил 1 день на борьбу с этой проблемой и, наконец, нашел, что случилось. Поэтому в следующий раз подумайте, как работает флеш внутри.

Надеюсь, я сэкономлю время для кого-то.