HTML5 и Amazon S3 загрузки нескольких частей

Можно ли использовать HTML 5 File API (например, эту библиотеку: https://github.com/23/resumable.js) в сочетании с функцией загрузки нескольких частей S3?

http://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html

1 ответ

Решение

Да, но вам понадобится какой-нибудь серверный сервер для более безопасной обработки ключей API Amazon, если вы собираетесь сделать его частью общедоступного веб-сайта.

Вы можете найти то, что выглядит как полный пример реализации этих проектов:

Обратите внимание, что я не использовал, не проверял и не проверял эти проекты.

Грубое описание последовательности выглядит следующим образом:

  1. пользователь
    • загружает веб-страницу
    • выбирает файл для загрузки
    • кнопка загрузки хитов
  2. Страница интернета
    • отправляет информацию о файле на сервер
  3. сервер
    • создает многочастную загрузку с Amazon API
    • отправляет "ключ"(имя файла) и "загрузить идентификатор" обратно на веб-страницу
  4. Страница интернета
    • определяет размер частей
    • просит сервер подписать передачу части "ключ", "идентификатор загрузки", информация о детали
  5. сервер
    • подписывает запрос части, отправляет "URL загрузки части", "дату" и "заголовок аутентификации"
  6. Страница интернета
    • отправляет данные детали непосредственно в Amazon S3 через "URL-адрес загрузки", используя "date" и "auth header"
    • отслеживает идентификаторы деталей
  7. Сервер и веб-страница
    • повторяет 5 и 6 для каждой дополнительной части, возобновляя при необходимости
  8. Страница интернета
    • делает запрос на загрузку завершенным на сервер (передавая всю информацию о детали)
  9. сервер
    • отправляет запрос в Amazon API для завершения создания файла
  10. Страница интернета
    • сообщить пользователю об ошибке или успехе

Заметки:

  • Если загрузка прервана, это также должно выполняться на стороне сервера, иначе начатые части / загрузки будут оставлены, чтобы занять место в S3 Bucket.
  • Завершение запроса "загрузить завершено" в Amazon может занять несколько минут.
Другие вопросы по тегам