我需要为客户提供一种方法,在AppEngine BlobStore中对blob执行以下写操作(或者,如果更容易,可以在Google云端存储中的文件上执行):
从offset X 开始,删除 Y 字节并插入以下字节: [z0,z1,z2,...] < / p>
例如,如果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中),然后从偏移量开始复制此blob的其余部分X + Y“?
或者我是否必须通过读取原始blob并从中构建新blob来手动执行此操作,以32MB块执行所有操作,因为这是请求大小限制?如果是这样,我可以期望这会产生一些合理的性能,或者BlobStore上传/下载到请求处理程序对于大型数据块来说真的很慢吗?