簡體   English   中英

無法通過Google App Engine Servlet(Java)將對象存儲在Google Cloud Storage中

[英]Cannot store objects in my Google Cloud Storage from my Google App Engine Servlet (Java)

我正在使用App Engine允許應用上傳文件。 該文件是通過HTTP POST接收的,我正在嘗試將其存儲在Google Storage中。

我的服務器代碼;

GcsFileOptions instance = GcsFileOptions.getDefaultInstance();
GcsFilename fileName = new GcsFilename("my-bucket", "file.dat");
GcsOutputChannel outputChannel;

log.info("Saving " + fileName + " to " + instance);

outputChannel = gcsService.createOrReplace(fileName, instance);
copy(req.getInputStream(), Channels.newOutputStream(outputChannel));

中間的Log條目產生;

com.my.app.Servlet: Saving GcsFilename(my-bucket, file.dat) to GcsFileOptions [userMetadata={}]

這導致異常;

com.google.appengine.tools.cloudstorage.RetriesExhaustedException: RetryHelper(5.644 s, 10 attempts, com.google.appengine.tools.cloudstorage.GcsServiceImpl$1@1af95fcc): Too many failures, giving up
    at com.google.appengine.tools.cloudstorage.RetryHelper.doRetry(RetryHelper.java:127)
    at com.google.appengine.tools.cloudstorage.RetryHelper.runWithRetries(RetryHelper.java:166)
    at com.google.appengine.tools.cloudstorage.RetryHelper.runWithRetries(RetryHelper.java:156)
    at com.google.appengine.tools.cloudstorage.GcsServiceImpl.createOrReplace(GcsServiceImpl.java:70)
    at com.my.app.Servlet.saveFile(Servlet.java:128)
    at com.my.app.Servlet.doPost(Servlet.java:107)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
... <Cut by submitter>
Caused by: java.io.IOException: java.lang.NullPointerException
    at com.google.appengine.tools.cloudstorage.dev.LocalRawGcsService$BlobStorageAdapter.getInstance(LocalRawGcsService.java:186)
    at com.google.appengine.tools.cloudstorage.dev.LocalRawGcsService$BlobStorageAdapter.access$000(LocalRawGcsService.java:109)
    at com.google.appengine.tools.cloudstorage.dev.LocalRawGcsService.ensureInitialized(LocalRawGcsService.java:194)
    at com.google.appengine.tools.cloudstorage.dev.LocalRawGcsService.beginObjectCreation(LocalRawGcsService.java:249)
    at com.google.appengine.tools.cloudstorage.dev.LocalRawGcsService.beginObjectCreation(LocalRawGcsService.java:92)
    at com.google.appengine.tools.cloudstorage.GcsServiceImpl$1.call(GcsServiceImpl.java:74)
    at com.google.appengine.tools.cloudstorage.GcsServiceImpl$1.call(GcsServiceImpl.java:70)
    at com.google.appengine.tools.cloudstorage.RetryHelper.doRetry(RetryHelper.java:108)
    ... 34 more
Caused by: java.lang.NullPointerException
    at com.google.appengine.tools.cloudstorage.dev.LocalRawGcsService$BlobStorageAdapter.<init>(LocalRawGcsService.java:123)
    at com.google.appengine.tools.cloudstorage.dev.LocalRawGcsService$BlobStorageAdapter.getInstance(LocalRawGcsService.java:184) 
    ... 41 more 

解決了。 在類似的情況下,此問題已在此處得到解答: 如何從gcs中獲取文件列表?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM