Я пытаюсь сохранить файл в Google App Engine и следую их документации, но постоянно получаю исключение NullPointerException в строке метода CreateOrReplace. Уже разобрался, что gcsService создается. Любые идеи?
public String getFileUrl(MultipartFile file) throws CustomException {
String unique = UUID.randomUUID().toString();
String fileName = unique + ".jpeg";
GcsFilename gcsFilename = new GcsFilename("MY_BUCKET", fileName);
try {
GcsOutputChannel outputChannel = GcsServiceFactory.createGcsService().createOrReplace(gcsFilename, GcsFileOptions.getDefaultInstance());
copy(file.getInputStream(), Channels.newOutputStream(outputChannel));
} catch (IOException e) {
e.printStackTrace();
}
ImagesService imagesService = ImagesServiceFactory.getImagesService();
ServingUrlOptions options = ServingUrlOptions.Builder
.withGoogleStorageFileName("/gs/MY_BUCKET/" + fileName)
.secureUrl(true);
return imagesService.getServingUrl(options);
}
Включенная зависимость:
<dependency>
<groupId>com.google.appengine.tools</groupId>
<artifactId>appengine-gcs-client</artifactId>
<version>0.7</version>
</dependency>
И получив:
RetryHelper(32.34 s, 6 attempts, com.google.appengine.tools.cloudstorage.GcsServiceImpl$1@74c3f0b0): Too many failures, giving up
За исключением в журнале:
c.g.a.tools.cloudstorage.RetryHelper : RetryHelper(1.386 s, x attempts, com.google.appengine.tools.cloudstorage.GcsServiceImpl$1@6bd1dbe9): Attempt #x failed [java.io.IOException: java.lang.NullPointerException], sleeping for x ms
Заранее спасибо!
Редактировать:
Обнаружил, что класс ApiProxy в com.google.apphosting.api на
public static ApiProxy.Delegate getDelegate() {
return delegate;
}
возвращает NULL.
Любые идеи?
Спасибо, @ user202729. Надеюсь, теперь это более ясно.
Если это Java, у вас должен быть тег Ява.
Ага, это тоже добавил. Спасибо!
Где у вас этот метод определен: copy(file.getInputStream(), Channels.newOutputStream(outputChannel));?
В том же классе просто скопировал из документации, но ломается по методу CreateOrReplace. Любые идеи? @VictorHerasmePerez
На самом деле мне нужен код метода. Можете ли вы опубликовать ссылку на документ, чтобы я мог получить полный пример?
Да нет проблем @VictorHerasmePerez github.com/GoogleCloudPlatform/appengine-gcs-client/blob/master /…




Без минимальный воспроизводимый пример вам было бы невозможно помочь. В текущем состоянии единственный способ, которым мы можем помочь, - это дать вам подсказку / инструкцию по отладке вашей программы, что не относится к теме Переполнение стека.