Обслуживание статических файлов AppEngine

Как лучше всего обслуживать статические изображения и файлы javascript с помощью appengine?

Из того, что я вижу, есть два применимых метода: файлы хранятся в каталоге war службы, которую вы загружаете, во время разработки. Альтернативой является использование хранилища больших двоичных объектов, когда файлы загружаются после того, как служба загрузит их.

Я вижу, что существует ограничение в 150 МБ для файлов ресурсов в каталоге war (с ограничением в 10 МБ на файл), но, насколько я вижу, это более простое «свободное» пространство. Это медленнее, чем blobstore? Динамический характер хранилища больших двоичных объектов меня мало интересует, поэтому каталог кажется лучшим вариантом.

Кто-нибудь может дать совет? Верны ли мои выводы?


person Venatu    schedule 27.09.2011    source источник


Ответы (3)


Можно поместить файлы javascript и изображений в каталог файлов ресурсов на appengine. По моему опыту, файлы хранилища больших двоичных объектов и файлы ресурсов имеют схожие характеристики производительности.

Однако по мере того, как скорость сайта становится все более важной, может иметь смысл использовать CDN для более быстрой доставки статических файлов вашим пользователям.

Если статический javascript является чем-то распространенным, например, jquery или jquery-ui, я бы рекомендовал сразу же использовать API библиотек Google: http://code.google.com/apis/libraries/devguide.html

person nottombrown    schedule 27.09.2011
comment
Может показаться, что Blobstore и файлы ресурсов имеют схожие характеристики производительности, но ни один из них не подходит для сервера JS. Попробуйте статические файлы. Вы можете быть очень удивлены. - person Dave W. Smith; 28.09.2011

Идеальный способ обслуживания статических файлов (изображение, javascript, css) — объявить их с помощью <static-files> в appengine-web.xml.

Начальный абзац http://code.google.com/appengine/docs/java/config/appconfig.html#Static_Files_and_Resource_Files красиво излагает это:

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

person Dave W. Smith    schedule 28.09.2011

Если это обычный веб-сайт, на котором размещены некоторые изображения и файлы javascript, обычно он должен следовать стандартному способу размещения их в каталоге war. Я не вижу особой выгоды в размещении этих файлов в blobstore, поскольку вы сказали, что не интересуетесь динамической природой. Не говоря уже о другом уровне сложности, который вы добавили с помощью blobstore.

person Yudong Li    schedule 28.09.2011