我需要为客户提供一种对 AppEngine BlobStore 中的 blob 执行以下写入操作的方法(或者如果更容易,也可以在 Google Cloud Storage 中的文件上执行以下写入操作):
从偏移量X开始,删除Y字节并插入以下字节:[z0, z1, z2, ...]
例如,如果 blob 包含以下数据:
[0、1、2、3、4、5、6、7、8、9、10、11]
我想让客户说“从偏移量 3 开始,用 [a, b, c, d] 替换 5 个字节,然后 blob 看起来像这样:
[0、1、2、a、b、c、d、8、9、10、11]
有没有办法,例如,使用 mapreduce API 告诉它“从这个 blob 复制 X 个字节,然后附加这个数据(可能存储在另一个 blob 中),然后从偏移量 X+Y 开始复制这个 blob 的其余部分“?
或者我是否必须通过读取原始 blob 并从中构建一个新 blob 手动执行此操作,以 32MB 块执行所有操作,因为这是请求大小限制?如果是这样,我是否可以期望这会产生一些合理的性能,或者 BlobStore 上传/下载到请求处理程序对于大数据块来说真的很慢吗?