Как я могу хранить файлы в хранилище Google, но пропустить часть GAE для их извлечения?

Мне нравится Google App Engine для хранилища данных (и тот факт, что я могу разрабатывать на Python), но у них есть Ограничение в 1 МБ на получение и загрузку файлов. С другой стороны, я думаю, он был создан не для этого.

Мне удалось создать службу, которая получает URL-адрес (или файл от пользователя), загружает его в GAE и затем помещает в хранилище Google. Работает отлично, но для файлов размером менее 1 МБ. Существуют обходные пути Конечно, но я думаю, что это можно сделать быстрее, пропустив GAE для извлечения данных.

Итак, мой вопрос: возможно ли сохранить мое хранилище данных в GAE и, зная только URL-адрес (или специальную форму для загрузки файлов), создать заголовки, а затем разрешить Google Storage извлекать файл и хранить его без ограничения в 1 МБ?


person Lipis    schedule 06.11.2010    source источник


Ответы (2)


Нет. Google Storage не поддерживает получение файла за вас.

person Nick Johnson    schedule 06.11.2010
comment
Ооо...!! Тогда, я думаю, мы переключаемся на EC2, и, поскольку мы там, тогда S3 - это путь..! Я очень хотел использовать GAE и GS, но похоже, что это не для этого проекта :( - person Lipis; 06.11.2010
comment
Почему бы не запустить задачу, которая выполняет выборку и сохранение в EC2 или где-либо еще, а остальную часть приложения — в App Engine? Это не предложение «все или ничего». - person Nick Johnson; 06.11.2010
comment
хорошо, потому что остальная часть приложения уже находится где-то еще, и я работаю над другими вещами.. Мне поручили часть хранения мультимедиа, и я хотел сделать эту услугу где-нибудь еще, чтобы разгрузить наши серверы... Я большой поклонник GAE.. и я был немного разочарован вчера, когда столкнулся со всем этим, особенно когда все работало :D, но я еще не закончил с GAE и несколькими личными проектами, которые мы имеем в виду.. будет там!! Спасибо за помощь.. и сделайте что-нибудь с этим 1MB и лучшей интеграцией с GS..!! - person Lipis; 06.11.2010

Неважно, где хранится файл. Существует не только ограничение размера объекта хранилища данных в 1 МБ, но и ограничение в 1 МБ в структуре данных в памяти. Таким образом, даже если вы сохранили файл в другом месте, вам пришлось бы разделить его на части, чтобы иметь возможность работать с ним в движке приложения.

Для Java в GAE я предлагаю посмотреть gaevfs (http://code.google.com/p/gaevfs/). Он превращает хранилище данных ядра приложения в файловую систему, которая может хранить файлы произвольного размера и работать с ними так же, как с обычными файлами.

person Travis Webb    schedule 06.11.2010
comment
у нас будет много данных для хранения, и это либо GS, либо S3. Слишком дорого использовать хранилище данных для хранения файлов и иметь дело со всеми этими ограничениями. - person Lipis; 06.11.2010