我使用GCSService在GoogleCloudStorage存儲桶中寫入文件,所有這些都可以在線實例正常工作,但是當我想在本地開發服務器上測試我的代碼時,不可能寫入一個存儲桶(像數據存儲一樣模擬本地存儲區)。 額外的困難我試圖寫在我的本地服務器與胖客戶端的遠程API,我在網上搜索我沒有找到我的答案。 當我打電話給我的createOrUpdate()方法,我有這樣的例外:Google App引擎Java API在本地開發服務器上寫入存儲桶不起作用
com.google.appengine.tools.cloudstorage.NonRetriableException: java.lang.RuntimeException: Server replied with 403, verify ACLs are set correctly on the object and bucket: Request: POST https://storage.googleapis.com/InstanceName/FileInfos
它似乎試圖在我的網上桶寫...
GcsService gcsService = GcsServiceFactory.createGcsService(RetryParams.getDefaultInstance());
...
RemoteApiOptions destination = RemoteConnection.connect(destinationServer);
RemoteApiInstaller destinationInstaller = new RemoteApiInstaller();
destinationInstaller.install(destination);
try
{
GcsOutputChannel outputChannel = gcsService.createOrReplace(new GcsFilename(destinationBucketServer, fileInfo.getFilename()),
GcsFileOptions.getDefaultInstance());
outputChannel.write(ByteBuffer.wrap(data));
outputChannel.close();
}
catch (Exception e)
{
....
}
finally
{
buffer.flush();
destinationInstaller.uninstall();
}
用同樣的代碼,我可以在數據存儲中沒有寫任何問題,這只是一個存儲問題。
是的我知道403是什麼意思,但是我可以在本地存儲桶中配置本地ACL,但是我沒有發現任何有關此配置的信息。在例外情況下,有遠程URL POST https://storage.googleapis.com/InstanceName/FileInfos喜歡它嘗試在線上傳。 感謝您的回答 – Benjyyyyy
除此之外,我使用開發服務器憑證連接到本地服務器,我在這裏錯過了什麼?爲什麼此代碼不提供訪問權限? new RemoteApiOptions()。server(server.getAddress(),server.getPort())。useDevelopmentServerCredential(); – Benjyyyyy