Napisałem aplikację Google App Engine, która korzysta z Blobstore do zapisywania danych wygenerowanych programowo. Aby to zrobić, skorzystałem z wersji Files API, która została niestety wycofana na rzecz Google Cloud Storage. Tak więc przepisuję moją klasę pomocników do pracy z GCS.Pobierz plik Google Cloud Storage z BlobKey
Chciałbym, aby interfejs był jak najbardziej podobny do poprzedniego, także dlatego, że utrzymuję BlobKeys w Datastore, aby zachować odniesienia do plików (a zmiana modelu aplikacji produkcyjnej jest zawsze bolesna). Kiedy zapisać coś do OWS, i odzyskać BlobKey z
BlobKey blobKey = blobstoreService.createGsBlobKey("/gs/" + fileName.getBucketName() + "/" + fileName.getObjectName());
jak przepisane here, i utrzymują go w magazynie danych.
Oto więc pytanie: dokumentacja mówi mi, jak obsłużyć plik GCS z blobstoreService.serve(blobKey, resp);
w odpowiedzi serwletu, ALE jak mogę pobrać zawartość pliku (jako InputStream, tablica bajtów lub cokolwiek innego), aby użyć go w moim kodzie dla dalsze przetwarzanie? W mojej obecnej wersji robię to z odczytem FileReadChannel
z AppEngineFile
(oba przestarzałe).
Dziękujemy! Miałem nadzieję, że uda mi się uzyskać zawartość za pomocą BlobKey, ale jeśli nie ma sposobu, aby to zrobić, to (ugh) zmodyfikuję mój model tak, aby zawierał nazwę obiektu –