2014-10-25 12 views
6

Kiedy wysyłamy pliki do Blobstore na Google App Engine, zauważamy, że przy każdym przesłaniu tworzony jest podmiot w rodzaju _BlobInfo_, który można zobaczyć w lokalnej konsoli programistycznej pod przeglądarką magazynu danych pod adresem http://localhost:8888/_ah/admin, jednak po wdrożeniu aplikacji w App Engine nie takie obiekty są tworzone, gdy przesyłamy pliki do Blobstore. Wydaje mi się to dziwne i chciałem się dowiedzieć, czy czegoś tu nie ma.Dlaczego żaden rodzaj encji o nazwie _BlobInfo_ w magazynie danych nie jest tworzony po wdrożeniu aplikacji w GAE?

+1

Rozumiem to zachowanie jako metodę dev_appservers emulacji blob/przechowywania danych. Po wdrożeniu taka jednostka nie jest potrzebna, ponieważ encja jest teraz przechowywana w odpowiednim blobstore. Niczego nie brakuje. –

Odpowiedz

4

_BlobInfo_ nie jest nazwą specjalną i najprawdopodobniej Twoja aplikacja nie tworzy elementów o tej nazwie.

W środowisku produkcyjnym __BlobInfo__ to nazwa wewnętrzna do przechowywania informacji o obiektach typu blob przechowywanych w Blobstore. Zauważ, że są dwa znaki podkreślenia (_) przed i po słowie BlobInfo. Ta encja jest tworzona tylko wtedy, gdy twoja aplikacja tworzy i zapisuje obiekty blob w Blobstore.

Ponieważ jest to jednostka wewnętrzna, jest domyślnie wykluczona z przeglądarki Datastore. Jest również wykluczony ze strony Statystyki Datastore, ale pojawia się jako BlobInfo w kategorii Kind: "Wszystkie elementy".
Za pomocą małej sztuczki można również wyświetlić szczegółowe statystyki dla jednostki __BlobInfo__: wybierz dowolny obiekt z listy rozwijanej, a po ponownym załadowaniu strony, w url zmodyfikuj parametr kind=XXX na kind=__BlobInfo__ i naciśnij Enter. Teraz strona przeładuje statystyki, mimo że jest ukryta na liście rozwijanej.

Można jednak wyświetlić te elementy. Na przykład przejdź do przeglądarki Datastore w twojej konsoli administracyjnej i zaznacz "Według GQL", abyś mógł wprowadzić GQL, aby wyświetlić listę swoich obiektów. Teraz wprowadź następujące zapytanie GQL:

SELECT * FROM __BlobInfo__ 

Spowoduje to wyświetlenie Twoich jednostek BlobInfo.

Należy zauważyć, że strona Blob Viewer w konsoli administratora wyświetla również obiekty typu blob na podstawie jednostek przechowywanych pod nazwą __BlobInfo__. Obiekty __BlobInfo__ zawierają również więcej właściwości niż te wyświetlane na stronie przeglądarki Blob.

Wszystkie właściwości są następujące:

  • ID/Nazwa
  • content_type
  • tworzenie
  • creation_handle
  • filename
  • md5_hash
  • rozmiar
  • upload_id

Są one również dostępne w twojej aplikacji, jeśli zdarzy ci się zapytać te podmioty.

+2

Dzięki za szczegółowe i pouczające wyjaśnienie! ;) –

Powiązane problemy