GAE имеет жесткие ограничения 32 МБ для запросов HTTP и ответов HTTP.Это ограничит размер загрузки / выгрузки непосредственно в / из приложения GAE.
Исправленный ответ (Использование Blobstore API.)
Google предоставляет API Blobstore для обработки больших файлов в GAE (до 2 ГБ).Обзорная документация содержит полный пример кода.Ваша веб-форма загрузит файл в интернет-магазин.Затем API Blobstore переписывает POST обратно в ваш сервлет, где вы можете выполнить преобразование и сохранить преобразованные данные обратно в хранилище BLOB-объектов (как новый BLOB-объект).
Оригинальный ответ (DidnНе рассматривайте Blobstore как опцию.)
Я думаю, что для загрузки GAE единственным обходным решением было бы разбить файл на несколько частей на сервере, а затем собрать заново после загрузки.Это, вероятно, невозможно при использовании прямой реализации браузера.
(В качестве альтернативы, возможно, вы могли бы отправить преобразованный файл из GAE во внешнее местоположение загрузки (например, S3), где он мог бы быть загружен браузеромбез ограничений лимита GAE. Я не верю, что инициированные GAE соединения имеют такие же ограничения размера запроса / ответа, но я не уверен. В любом случае, вы все равно будете ограничены максимальным временем запроса 30 секунд. Чтобы обойти это, выМне нужно посмотреть GAE Backend и придумать какую-то асинхронную стратегию загрузки.)
Для загрузки больших файлов я читал о возможности использования файла HTML5API-интерфейсы для нарезки файла на несколько фрагментов для загрузки, а затем восстановления на сервере.Пример: http://www.html5rocks.com/en/tutorials/file/dndfiles/#toc-slicing-files.Однако я не представляю, насколько практичным является решение, которое действительно связано с изменением спецификаций и возможностей браузера.