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

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

Ответ 1

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

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

    Filename - это поле, которое бэкэнда Flash отправляет, но бэкэнд HTML5 этого не делает.

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

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

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

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

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

  • unique_names может быть либо True, либо False, оба работают.

Ответ 2

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

Вот свежий отчет: Загрузить на Amazon S3

Ответ 3

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

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

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

Ответ 4

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

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