Как сделать загрузку Plupload напрямую в Amazon S3? - PullRequest
21 голосов
/ 09 января 2011

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

Ответы [ 5 ]

17 голосов
/ 09 января 2011
  • В дополнение к условным обозначениям для bucket, key и acl, документ политики должен содержать правила для name, Filename и success_action_status. Например:

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

    Filename - это поле, которое серверная часть Flash отправляет, а серверная часть HTML5 - нет.

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

  • Параметр 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 может быть как True, так и False, оба работают.
5 голосов
/ 14 февраля 2011

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

Вот новая запись: Загрузкана Amazon S3

2 голосов
/ 12 июля 2014

Официальный учебник Plupload, гораздо более подробный, чем ответы здесь: https://github.com/moxiecode/plupload/wiki/Upload-to-Amazon-S3

1 голос
/ 14 марта 2012

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

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

1 голос
/ 27 мая 2011

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

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

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

...