Кажется, что нет эквивалента _ah / admin в Python App Engine для реализации Java для Google App Engine.
Есть ли ручной способ просмотра хранилища данных? Где файлы на моем компьютере? (Я использую плагин App Engine с Eclipse в OS X).
java
google-app-engine
google-cloud-datastore
Джим Блэклер
источник
источник
В настоящее время нет программы просмотра хранилища данных для Java SDK - она должна появиться в следующем выпуске SDK. А пока лучше всего написать собственный интерфейс администратора с кодом просмотра хранилища данных - или дождаться следующего выпуска SDK.Java App Engine теперь имеет средство просмотра локального хранилища данных, доступное по адресу
http://localhost:8080/_ah/admin
.источник
У меня есть локальное хранилище данных в среде Windows + Eclipse на \ war \ WEB-INF \ appengine-generated \ local_db.bin
Насколько я понял, он использует внутренний формат под названием «буферы протокола». У меня нет внешних инструментов для представления файла в удобочитаемом формате.
Я использую простой код для просмотра, например:
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType("text/plain"); final DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); final Query query = new Query("Table/Entity Name"); //query.addSort(Entity.KEY_RESERVED_PROPERTY, Query.SortDirection.DESCENDING); for (final Entity entity : datastore.prepare(query).asIterable()) { resp.getWriter().println(entity.getKey().toString()); final Map<String, Object> properties = entity.getProperties(); final String[] propertyNames = properties.keySet().toArray( new String[properties.size()]); for(final String propertyName : propertyNames) { resp.getWriter().println("-> " + propertyName + ": " + entity.getProperty(propertyName)); } } }
источник
В новейших версиях SDK ( 1.7.6+ ) административная часть dev-сервера изменила свое местоположение
Анализируя журналы вывода сервера, мы видим, что он доступен по адресу:
http://localhost:8000
И программа просмотра хранилища данных :
http://localhost:8000/datastore
Выглядит довольно аккуратно - согласно новым рекомендациям Google по дизайну.
источник
Поскольку программа просмотра хранилища данных Google App Engines не поддерживает отображение коллекций ссылочных сущностей, я изменил версию Пола, чтобы отображать все дочерние сущности:
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { String entityParam = req.getParameter("e"); resp.setContentType("text/plain"); final DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); // Original query final Query queryOrig = new Query(entityParam); queryOrig.addSort(Entity.KEY_RESERVED_PROPERTY, Query.SortDirection.ASCENDING); for (final Entity entityOrig : datastore.prepare(queryOrig).asIterable()) { // Query for this entity and all its descendant entities and collections final Query query = new Query(); query.setAncestor(entityOrig.getKey()); query.addSort(Entity.KEY_RESERVED_PROPERTY, Query.SortDirection.ASCENDING); for (final Entity entity : datastore.prepare(query).asIterable()) { resp.getWriter().println(entity.getKey().toString()); // Print properties final Map<String, Object> properties = entity.getProperties(); final String[] propertyNames = properties.keySet().toArray(new String[properties.size()]); for(final String propertyName : propertyNames) { resp.getWriter().println("-> " + propertyName + ": " + entity.getProperty(propertyName)); } } } }
Следует отметить, что для пустых коллекций / ссылочных сущностей ничего не отображается.
источник
Откройте
\war\WEB-INF\appengine-generated\local_db.bin
файл в текстовом редакторе, например Notepad ++.Данные зашифрованы, но, по крайней мере, вы можете их прочитать и скопировать, чтобы извлечь.
источник
Для меня исправление заключалось в том, чтобы войти в систему, используя
gcloud
команду нижеgcloud auth application-default login
источник