5

Kann jemand bitte dies für mich klären. Ich lese die Entwickler-Seite über den Blobstore unter https://developers.google.com/appengine/docs/java/blobstore/overview. Ich kann meinen Kopf nicht um den Prozess des Speicherns und Abrufens von Blobs herumlegen. Es klingt wieWie würde ich Blobstore verwenden, um android Bilder zu verarbeiten

  • android app würde ein Bild in die Blobstore
  • nach dem Speichern des Bildes würde die Blobstore dann wieder ein BlobKey meinem Backend direkt senden für mich in den Datenspeicher zu setzen

Ist das der Prozess? Vielleicht liegt es daran, dass ich einen langen Tag hatte, aber ich kann es einfach nicht sehen. Wenn jemand ein Beispiel hat, dem es nichts ausmacht, es zu teilen, poste es bitte. Ich muss nur Bilder von Android im Blobstore speichern und dann in der Lage sein, sie mit Blobkey oder auf andere Weise zu erhalten.

ich bereits bei

Für das Leben von mir sehen haben, weiß ich nicht, warum sie nicht tun Es für mich.

Ich nehme einige Fragen sind:

  • Wie android wo nicht kennt, um den Blob zu schicken? Ich meine, unterscheidet Google zwischen meinen Instanzen des Blobstores und den Instanzen anderer Leute, ähnlich wie es meine Instanzen des Datenspeichers unterscheidet? Mit anderen Worten, könnte ich zur App Engine Applications Overview gehen und alle Blobs sehen, die zu meiner App gehören, so wie ich es im Datenspeicher tun könnte? Ich nehme an, ein vollständiger, funktionierender Code könnte mir helfen, diese Antworten zu sehen.

Teil meines Problems könnte sein, dass ich nie Servlet verwendet habe. Ich verwende derzeit Google Cloud Endpoint für meine API.

+1

Haben Sie sich gefragt, ob Sie einen funktionierenden Code für diese Lösung haben? –

Antwort

1

Ihre Beschreibung des Prozesses ist korrekt. Der einzige Schritt, den Sie verpassen, ist der erste: Die Server-Seite ruft blobstoreService.createUploadUrl (redirecturl) auf, um die URL zu generieren, an die hochgeladen werden soll. Dann speichert der Handler bei redirecturll den Blob-Schlüssel im Datenspeicher.

+0

Ist diese URL für immer festgelegt oder ist sie dynamisch? Wie in muss die Android-App für jedes Mal, wenn es ein Blob oder ein Blob oder ich brauche es einmal aufrufen und dann auf dem Client speichern und verwenden es jedes Mal, wenn ich einen Blob senden müssen? – learner

+0

ist es dynamisch. Diese Funktion erstellt eine neue URL für jedes Blob. Ich bin mir nicht sicher, ob Endpoints einen bestimmten Weg haben, um damit umzugehen, aber der allgemeine Fall mit Blobstore ist, dass Sie createUploadUrl() jedes Mal verwenden müssen, wenn Sie etwas auf Blobstore hochladen wollen. – dragonx

+0

@dragonx Wenn Blobstore Server durch Callback-URL aufruft, woher weiß der Server, für welchen Benutzer dieser Callback ist? –

3

Eigentlich gibt es zwei Möglichkeiten, um Blobstore hochzuladen:

Mit direct upload handler:

  • Server erhält eine eindeutige einmalige geheime URL zum Hochladen über createUploadUrl(..) und sendet diese URL an den Client.
  • Der Client verwendet multipart/form-data POST, um Daten in diese URL hochzuladen.
  • Der Vorteil ist, dass Sie große Dateien (> 32 MB) hochladen können.

blobstore FileService API Mit der ist veraltet und sollten keine mehr verwendet werden:

  • Sie erstellen Sie besitzen POST Upload-Handler in dem Client lädt die Daten.
  • Sie verwenden FileService API so Daten in Blobstore speichern.
  • Der Nachteil ist, dass Sie maximal 32 MB Daten hochladen können (generisches GAE-Anforderungslimit).
  • Der Vorteil ist, dass Sie Zugriff auf Daten haben, so dass Sie Inhalte bei Bedarf bearbeiten können.
+0

Danke für das Posten. +1. Das ist hilfreich. – learner

Verwandte Themen