7

Ich kann mir vorstellen, dass die Verwendung des Blobstores zum Speichern von Bildern dazu führt, dass der Blob-Schlüssel im Datenspeicher gespeichert wird. Also im folgenden Code, der in meinem Backend sein soll, warum brauche ich eine Weiterleitungs-URL, da ich bereits den Blob-Schlüssel habe? Warum sollte ich den Blob-Schlüssel nicht einfach in meinem Datenspeicher speichern und dann zurückgeben?Warum hat der Upload-Code von blobstore die Umleitungs-URL?

public class Upload extends HttpServlet { 
    private BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService(); 

    public void doPost(HttpServletRequest req, HttpServletResponse res) 
     throws ServletException, IOException { 

     Map<String, BlobKey> blobs = blobstoreService.getUploadedBlobs(req); 
     BlobKey blobKey = blobs.get("myFile"); 

     if (blobKey == null) { 
      res.sendRedirect("/"); 
     } else { 
      res.sendRedirect("/serve?blob-key=" + blobKey.getKeyString()); 
     } 
    } 
} 

Dieser Code ist aus dem Tutorial: https://developers.google.com/appengine/docs/java/blobstore/overview#Complete_Sample_App

+2

Sie möchten den BLOB-Schlüssel in Ihrem Datenspeicher speichern. Die Demo sendet den Client-Browser lediglich zu Demozwecken an die Ansicht der hochgeladenen Datei. Sie müssen das nicht kopieren. – dragonx

+2

@dragonx, vielleicht sind Sie die Person für den Job. Es wäre schön, wenn jemand mit dem entsprechenden Wissen ein für allemal diese Fragen zum Blobstore-Android-Endpunkt zum Ausruhen stellen würde. – kasavbere

Antwort

5

Da Google die Bilder auf einem anderen Dienst speichern (verwendet von Picassa als auch). Ziel ist es, den Speicher zu optimieren und dem Entwickler einige Werkzeuge zur Verfügung zu stellen, mit denen er diese Bilder einfach manipulieren kann.

Sehen Sie diese Referenz in der Dokumentation zu sehen, was Sie tun können: https://developers.google.com/appengine/docs/java/images/overview

die Umleitung zu vermeiden, sollten Sie diese Methode verwenden, um Bilder zu dienen: getServingUrl()

Aus der Dokumentation:

Mit der getServingUrl() -Methode können Sie eine stabile, dedizierte URL für die Bereitstellung von webfähigen Miniaturbildern generieren. Sie speichern einfach eine einzelne Kopie Ihres Originalbilds in Blobstore und fordern dann eine Hochleistung pro Bild-URL an. Diese spezielle URL kann das Image automatisch skalieren und/oder automatisch beschneiden, und von dieser URL aus wird keine CPU oder dynamisches Serving auf Ihre Anwendung übertragen (obwohl die Bandbreite immer noch wie üblich belastet wird). Bilder werden mit niedriger Latenz von einer hoch optimierten, cookieloser Infrastruktur geliefert.