0

我需要将字符串内容附加到谷歌云存储文件。

实际上,我正在执行包含超过 30 MB 文件大小的字符串操作。

我正在谷歌应用引擎中运行我的项目。当我尝试将整个内容保存在 stringbuilder 中时,它会在 google app 引擎中抛出 java heap space 错误。

有没有办法在谷歌云存储文件中追加内容而不是增加java堆空间?

4

1 回答 1

1

在 Java 中流式传输数据通常是通过 Writer 模式完成的。在构建数据时,您将其“写入”到流中。将整个事情保存在内存中会导致您遇到的问题。

我不确定您使用哪个库来访问 Google Cloud Storage,但它们中的大多数都提供了一种一次写入几个字节的对象的方法。

App Engine 的旧版 Google Cloud Storage API 为AppEngineFile对象提供了一种write()方法,您可以在创建对象时重复调用该方法。新的谷歌云存储客户端库提供了一个GcsOutputChannel可以做同样的事情。

不过,我可能误解了你的问题。您是否要在 Google Cloud Storage 中创建一个对象,然后再向其附加内容?GCS 不允许在文件完全创建后附加到文件,“组合”功能的有限例外(它可以工作,除了在达到最大组合之前您只能组合对象一定次数等级)。

于 2013-09-30T16:56:42.313 回答