Google AppEngine Blobstore: загрузка блобов по имени файла в Java - PullRequest
4 голосов
/ 02 апреля 2011

Предположим, я загрузил несколько файлов (в данном случае изображения, если это имеет значение) в BlobStore GAE.
Позже я хочу иметь возможность загружать эти файлы откуда-то еще.
Я знаю, что могу использовать метод serve от BlobStoreService, чтобы получить blob-объект с помощью BlobKey, но как мне получить ключ blob, связанный с данным именем файла? Я не могу найти какие-либо встроенные функции для этого.

Ответы [ 2 ]

18 голосов
/ 02 апреля 2011

BlobInfo метаданные, содержащие атрибут имени файла, хранятся в объектах __BlobInfo__ в хранилище данных только для чтения.

Query query = new Query("__BlobInfo__"); 
query.addFilter("filename", FilterOperator.EQUAL, filename); 
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); 
PreparedQuery pq = datastore.prepare(query); 
List<Entity> entList = pq.asList(FetchOptions.Builder.withLimit(1)); 
String name = entList.get(0).getKey().getName();
0 голосов
/ 02 апреля 2011

Вы можете запросить объекты BlobInfo по имени файла.

...