Создание BlobstoreKey из GoogleCloudStorage

Я пишу этот код для проекта с использованием GAE. Я не использую Blobstore, но мне нужно использовать метод serveUrl.

    GcsFilename gcsFilename = new GcsFilename(myBucket, myFileName);
        BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
BlobKey blobKey = blobstoreService.createGsBlobKey(
    "/gs/" + gcsFilename.getBucketName() + "/" + gcsFilename.getObjectName());

ImagesService images = ImagesServiceFactory.getImagesService();
    GcsFilename gcsFilename = new GcsFilename(myBucket, myFileName);
    BlobstoreService blobstore = BlobstoreServiceFactory.getBlobstoreService();
    BlobKey blobKey = blobstore.createGsBlobKey(key);
    ServingUrlOptions opts = ServingUrlOptions.Builder.
            withBlobKey(blobKey).
            secureUrl(true);
    images.getServingUrl(opts);

Когда я выполняю один из этих кодов, я получаю эту ошибку:

Исключение в потоке «основной» com.google.apphosting.api.ApiProxy$CallNotFoundException: пакет API «blobstore» или вызов «CreateEncodedGoogleStorageKey()» не найден.

Есть идеи?


person Community    schedule 03.09.2016    source источник
comment
Какая строка вашего кода вызывает это исключение?   -  person Andrei Volgin    schedule 04.09.2016
comment
@LaiaxanIV Есть решение для этого? Если это так, пожалуйста, поделитесь. Даже столкнулся с той же проблемой.   -  person das    schedule 18.02.2017
comment
@das Да, я отредактировал свой вопрос   -  person    schedule 19.02.2017
comment
Вы должны добавить решение в качестве ответа и принять его.   -  person Dan Cornilescu    schedule 20.02.2017


Ответы (1)


Решение @LaiaxanIV опубликовано как редактирование вопроса:

РЕШЕНИЕ, которое я нашел:

String key = ""; // Such as /gs/example-bucket/categories/animals.png"
ImagesService images = ImagesServiceFactory.getImagesService();
BlobstoreService blobstore = BlobstoreServiceFactory.getBlobstoreService();
BlobKey blobKey = blobstore.createGsBlobKey(key);
ServingUrlOptions opts = ServingUrlOptions.Builder.
        withBlobKey(blobKey).
        secureUrl(true);
return images.getServingUrl(opts);
person Community    schedule 19.02.2017
comment
О, я этого не знал. Спасибо! - person ; 20.02.2017
comment
Привет @Dan, я попробовал это решение, но все равно получаю ту же ошибку. Не могли бы вы сообщить мне, есть ли у вас решение для этого? Заранее спасибо. - person Shylashree; 24.04.2020
comment
Я не могу, я использую python :) Это решение LaiaxanIV. - person Dan Cornilescu; 25.04.2020