Я знаю, что это немного открыто, но я смущен относительно того, какую стратегию/метод следует применять для большого сервиса загрузки файлов, разработанного с использованием Колба и boto3. Для небольших файлов и все в порядке. Но это было бы очень приятно видеть, что вы думаете, ребята, когда размер превышает 100 МБПредпочитаемый способ использования Flask и S3 для больших файлов
То, что я имею в виде Подписчиков -
а) Стрят файл Колбы приложения с помощью какого-то AJAX uploader (То, что я пытаюсь создать, - это просто интерфейс REST с использованием Flask-Restful. Любой пример использования этих компонентов, например Flask-Restful, boto3 и потоковые большие файлы, приветствуется.). Приложение для загрузки будет (я считаю) частью платформы микросервисов, которую мы строим. Я не знаю, будет ли прокси-сервер Nginx перед флеш-приложением или он будет напрямую обслуживаться с помощью модуля/сервиса Kubernetes. В случае, если это напрямую подано, есть ли что-то, что я должен изменить для загрузки большого файла либо в кубернете, либо в слое фляги?
b) Используя прямой загрузчик JS (например, http://www.plupload.com/) и передайте файл в ведро s3 непосредственно и по окончании получите URL-адрес и передайте его в приложение Flask API и сохраните его в БД. Проблема заключается в том, что учетные данные должны быть где-то в JS, что означает угрозу безопасности. (Не уверен, что если какие-либо другие проблемы есть)
Что среди них (или что-то другое, я не думал о вообще), вы думаете, это лучший способ, и где я могу найти некоторые примеры кода для этого?
Заранее спасибо.
[EDIT]
Я нашел это - http://blog.pelicandd.com/article/80/streaming-input-and-output-in-flask, где автор имеет дело с видом подобной ситуации, как и я, и он предложил решение. Но он открывает файл, уже присутствующий на диске. Что делать, если я хочу напрямую загрузить файл, когда он входит в качестве одного объекта в ведро s3? Я чувствую, что это может быть основой решения, но не самого решения.
Что вы думаете о решении я предложил приведенную ниже? – SRC