5

Czy ktoś może mi to wyjaśnić. Czytam stronę programisty o blobstore pod adresem https://developers.google.com/appengine/docs/java/blobstore/overview. Nie mogę zakryć głowy procesem zapisywania i pobierania obiektów typu blob? To brzmi jakJak używać blobstore do przetwarzania obrazów z Androidem

  • android aplikacja będzie bezpośrednio wysłać zdjęcie do Blobstore
  • po zapisaniu obrazu, Blobstore by następnie powrócić do blobkey do mojego backend dla mnie umieścić w magazynie danych

Czy to proces? Może dlatego, że miałem długi dzień, ale po prostu tego nie widzę. Jeśli ktoś ma przykład, nie ma nic przeciwko dzieleniu się, opublikuj go. Po prostu trzeba zapisać obrazy z Androidem w blobstore, a następnie móc je odzyskać za pomocą blobkey lub w inny sposób.

już patrzeć na

Dla życia mnie, nie wiem, dlaczego nie robią to dla mnie.

Przypuszczam niektóre pytania są:

  • Jak android wiedzieć gdzie wysłać blob? Mam na myśli, czy Google rozróżnia moje instancje blobstore od instancji innych użytkowników, podobnie jak odróżnia moje instancje magazynu danych? Innymi słowy, czy mogę przejść do silnika aplikacji Applications Overview i zobaczyć wszystkie obiekty blob, które należą do mojej aplikacji, tak jak mogłem w magazynie danych? Przypuszczam, że kompletny, działający fragment kodu mógłby mi pomóc zobaczyć te odpowiedzi.

Część mojego problemu może polegać na tym, że nigdy nie korzystałem z serwletu. Obecnie używam Google Cloud Endpoint dla mojego interfejsu API.

+1

zastanawiałeś się, czy masz działający kod na tym rozwiązaniu? –

Odpowiedz

1

Twój opis procesu jest poprawny. Jedynym brakującym krokiem jest pierwszy: wywołania po stronie serwera blobstoreService.createUploadUrl (redirecturl) w celu wygenerowania adresu URL, do którego można przesłać. Następnie program obsługi w redirecturl zapisze klucz typu blob w magazynie danych.

+0

Czy ten adres URL jest ustawiony na zawsze, czy jest dynamiczny? Tak jak w przypadku aplikacji na Androida, musisz wywoływać ją za każdym razem, gdy trzeba ją zapisać, lub pobrać ją raz, a następnie przechowywać na kliencie i używać jej za każdym razem, gdy trzeba wysłać kropelkę? – learner

+0

jest dynamiczny. Ta funkcja tworzy nowy adres URL dla każdego obiektu typu blob. Nie jestem pewien, czy Endpoints ma specyficzny sposób radzenia sobie z tym, ale ogólny przypadek z Blobstore polega na tym, że musisz użyć createUploadUrl() za każdym razem, gdy chcesz załadować coś do Blobstore. – dragonx

+0

@dragonx, gdy blobstore wywołuje adres URL wywołania zwrotnego serwera, w jaki sposób serwer wie, do którego użytkownika należy wywołanie zwrotne? –

3

Właściwie istnieją dwa sposoby przesyłania do Blobstore:

Korzystanie direct upload handler:

  • Server otrzymuje unikalny jednorazowy tajny URL do wysyłania poprzez createUploadUrl(..) i wysyła ten adres URL do klienta.
  • Klient używa multipart/form-data POST, aby przesłać dane do tego adresu URL.
  • Plusem jest to, że można przesyłać duże pliki (> 32 MB).

Korzystanie blobstore FileService API który przestarzałe i nie powinien być stosowany dłużej:

  • utworzyć jesteś właścicielem POST wysyłania obsługi gdzie dane przesłane klienta.
  • Używasz interfejsu API FileService, więc zapisz dane do blobstore.
  • Wadą jest to, że można przesłać maksymalnie 32 MB danych (ogólny limit żądania GAE).
  • Plusem jest to, że masz dostęp do danych, więc możesz edytować zawartość, jeśli to konieczne.
+0

Dzięki za wysyłkę. +1. to jest pomocne. – learner

Powiązane problemy