Ich wollte Produktionsumgebungsdaten lokal mit GAE / J importieren, also habe ich versucht, die Remote-API zu verwenden. In diesem Abschnitt wird beschrieben, wie Sie Daten per Fernzugriff von GAE in der lokalen Umgebung zur Produktion erfassen und die erfassten Daten im lokalen Datenspeicher speichern.
Es ist in den folgenden Versionen implementiert.
Fügen Sie dem Projekt web.xml Folgendes hinzu.
web.xml
<servlet>
<display-name>Remote API Servlet</display-name>
<servlet-name>RemoteApiServlet</servlet-name>
<servlet-class>com.google.apphosting.utils.remoteapi.RemoteApiServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>RemoteApiServlet</servlet-name>
<url-pattern>/remote_api</url-pattern>
</servlet-mapping>
Um die Remote-API-Client-Komponenten zu nutzen, fügen Sie `` {JAVA-SDK-ROOT} / lib / appengine-remote-api.jar zum Verzeichnis
WEB-INF / lib` hinzu und übergeben Sie es über den Klassenpfad.
Importieren Sie die Daten des Kindnamens "Buch" lokal.
import com.google.appengine.tools.remoteapi.RemoteApiInstaller;
import com.google.appengine.tools.remoteapi.RemoteApiOptions;
// ...
RemoteApiOptions options = new RemoteApiOptions()
.server("your_app_id.appspot.com", 443)
.useApplicationDefaultCredential();
RemoteApiInstaller installer = new RemoteApiInstaller();
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
List<Entity> books;
try {
installer.install(options);
Query q = new Query("book");
books = datastore.prepare(q).asList(FetchOptions.Builder.withDefaults());
} finally {
installer.uninstall();
}
//Migrieren Sie Daten für den lokalen Speicher
List<Entity> devBooks = new ArrayList<>();
for (Entity book : books) {
Entity devBook = new Entity(book.getKind(), book.getKey().getName());
devBook.setPropertiesFrom(book);
devBooks.add(devBook);
}
datastore.put(devBooks);
Es hat nicht funktioniert, wenn ich nur "datastore.put ()" die Daten, die ich aus der Produktion erhalten habe, aber ich konnte sie lokal mit der obigen Methode abrufen.
Recommended Posts