2013-09-30 62 views
0

我需要將字符串內容附加到谷歌雲存儲文件。谷歌雲存儲文件附加操作

其實我正在做字符串操作,其中包含超過30 MB的文件大小。

我在谷歌應用程序引擎中運行我的項目。 當我嘗試在stringbuilder中保存整個內容時,它在Google應用引擎中拋出java堆空間錯誤。

有什麼方法可以在谷歌雲存儲文件中追加內容而不是增加java堆空間嗎?

回答

1

用Java流式傳輸數據通常是通過Writer模式完成的。當你建立你的數據時,你在流上「寫」它。記住整個事情會導致你遇到的問題。

我不確定您使用哪個庫來訪問Google雲端存儲,但其中大部分都提供了一次寫入對象幾個字節的方法。

App Engine的傳統Google Cloud Storage API提供了一個AppEngineFile對象,其中包含一個write()方法,您可以在創建對象時反覆調用該方法。新的Google雲端存儲客戶端庫提供了一個可以執行相同操作的GcsOutputChannel

雖然我可能誤解了你的問題。您是否想要在Google雲端存儲中創建對象,然後將內容添加到其中? GCS不允許在文件完全創建後添加到文件中,除了「撰寫」功能的有限例外(這可以起作用,除非您在達到最大構圖之前只能撰寫一定數量的對象水平)。

+0

是的,我使用了一個write()方法的AppEngineFile對象,但是它被刪除了,所以我轉移到了GcsOutputChannel。使用write()方法我附加了內容,但我不能這樣做在GcsOutputChannel中。就像你說的那樣,我在創建一個對象並在其後添加內容。如果它有任何其他選擇來做到這一點,請告訴我。感謝布蘭登的回覆。 – user2642444