Google App Engine - загрузка файлов, лучшие практики - PullRequest
2 голосов
/ 05 июня 2011

Я хочу загрузить файлы в мой проект Google App Engine .

Я давно читал эту проблему, и есть много ответов, утверждающих, что Blobstore - лучший вариант.

Но если я хорошо это понял, это объекты базы данных. Я хотел бы загрузить их как системные файлы в тему кэширования или упростить возможную будущую миграцию на другую CDN .

Представьте, что я хочу сохранить несколько файлов для каждого пользователя, пару изображений, текстовые файлы, возможно, видео и т. Д. Если когда-нибудь я захочу переместить эти статические файлы в другой CDN, разве это не должно быть вне базы данных?

Это хорошая идея? Есть ли решение?

Ответы [ 2 ]

1 голос
/ 05 июня 2011

Я бы порекомендовал вам использовать хранилище данных GAE для хранения ссылок на файлы (например, видео, изображений и т. Д.) И загружать контент на Amazon S3 . Вы можете даже разрешить клиентам загружать контент напрямую в Amazon S3 без обработки контента через GAE с использованием Amazon POST Forms ( Загрузка браузером в S3 с использованием HTML POST Forms ). Amazon AWS также предлагает CDN ( CloudFront ) с тесной интеграцией со службой S3.

Если вам нужно хранить только маленькие картинки, вы можете также рассмотреть сервисы изображений Google, поскольку они предлагают «бесплатный» CDN и некоторые классные трансформации из коробки.

0 голосов
/ 06 июня 2011

Вы не можете записывать в файловую систему на App Engine, поэтому вы можете сохранить данные в хранилище данных или в хранилище больших двоичных объектов.Как правило, хранилище BLOB-объектов является лучшим выбором для хранения файловых загрузок.

Что касается переноса на CDN, независимо от того, как вы это сделаете, он потребует изменений.App Engine - это не CDN, нет двух одинаковых CDN, и маловероятно, что CDN предоставит интерфейс, с которым вы все равно сможете взаимодействовать, используя стандартные операции с файловой системой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...