我需要将字符串内容附加到谷歌云存储文件。
实际上,我正在执行包含超过 30 MB 文件大小的字符串操作。
我正在谷歌应用引擎中运行我的项目。当我尝试将整个内容保存在 stringbuilder 中时,它会在 google app 引擎中抛出 java heap space 错误。
有没有办法在谷歌云存储文件中追加内容而不是增加java堆空间?
我需要将字符串内容附加到谷歌云存储文件。
实际上,我正在执行包含超过 30 MB 文件大小的字符串操作。
我正在谷歌应用引擎中运行我的项目。当我尝试将整个内容保存在 stringbuilder 中时,它会在 google app 引擎中抛出 java heap space 错误。
有没有办法在谷歌云存储文件中追加内容而不是增加java堆空间?
在 Java 中流式传输数据通常是通过 Writer 模式完成的。在构建数据时,您将其“写入”到流中。将整个事情保存在内存中会导致您遇到的问题。
我不确定您使用哪个库来访问 Google Cloud Storage,但它们中的大多数都提供了一种一次写入几个字节的对象的方法。
App Engine 的旧版 Google Cloud Storage API 为AppEngineFile
对象提供了一种write()
方法,您可以在创建对象时重复调用该方法。新的谷歌云存储客户端库提供了一个GcsOutputChannel
可以做同样的事情。
不过,我可能误解了你的问题。您是否要在 Google Cloud Storage 中创建一个对象,然后再向其附加内容?GCS 不允许在文件完全创建后附加到文件,“组合”功能的有限例外(它可以工作,除了在达到最大组合之前您只能组合对象一定次数等级)。