2014-09-27 27 views
2

在本地開發服務器上,我將文件上傳到GCS存儲桶(在創建上傳URL時使用GoogleStorageBucketName),並在回調函數FileInfo.getGsObjectName()中返回一個以「fake-encoded_gs_key:」開頭的名稱。我可以使用該名稱來爲BlobstoreService提供文件,但是當我嘗試使用Cloud Storage客戶端庫來處理此名稱(以及我上傳的同一個存儲桶)時,例如將其複製,我得到:如何使用雲存儲庫處理在開發服務器上使用BlobstoreService上傳的文件?

java.io.FileNotFoundException: [email protected]117755b: No such file: GcsFilename(app_default_bucket, fake-encoded_gs_key:YXB...281) 

在/目標/應用程序的名字/ WEB-INF /應用服務引擎生成/使用的名稱的文件開頭「encoded_gs_key:」被創建,並且在此之後,長的部分「假encoded_gs_key之後從長的部分的不同:「 之前提到。

我該如何在開發服務器上完成這項工作?

回答

1

您可能運行到以下錯誤: https://code.google.com/p/googleappengine/issues/detail?id=9000

開發服務器出現故障時服務谷歌存儲文件

你必須同時使用雲存儲庫和Blob存儲API?如果沒有,爲什麼不使用沒有BlobstoreService的雲存儲庫。嘗試在默認情況下只使用客戶端庫下面的例子: https://github.com/GoogleCloudPlatform/appengine-gcs-client/blob/master/java/example/src/com/google/appengine/demos/GcsExampleServlet.java

// Create object via client library. 
GcsService gcsService = GcsServiceFactory.createGcsService(); 
GcsFilename filename = new GcsFilename(BUCKETNAME, FILENAME); 
gcsService.createOrReplace(filename, GcsFileOptions.getDefaultInstance()); 
.... 
// Read object via client library. 
GcsInputChannel readChannel = gcsService.openReadChannel(filename, 0); 
+0

您好,歡迎光臨。請考慮在此答案中添加更多詳細信息。特別要確保在這篇文章中包含或引用鏈接的重要信息。 – JasonMArcher 2014-11-14 21:37:11

+0

謝謝,JasonMArcher。我現在在這裏添加了一些相關的引號。 – hinson 2014-11-14 21:55:39

+0

謝謝!這有助於使SO成爲更好的資源。 – JasonMArcher 2014-11-14 21:57:42

相關問題