[英]PUTing blocks into blob with java azure storage client
我正在尝试从多个java进程并行地将数据上传到相同的Block Blob。 这些进程无法相互通信,因此他们无法知道上一个块何时上传。
我希望在进程上传后立即提交每个块。 我以为我可以使用commitBlockList来做到这一点,但它的行为似乎消灭了未提交的块。 我尝试通过租约同步访问blob,以便每个进程获取blob上的租约并通过downloadBlockList下拉阻止列表,并更新每个进程上传的块,但这仍然有意外行为(块继续消失名单)。
java azure存储客户端中是否有一个操作允许我更新块存储blob中SINGLE块的已提交状态? 或者,是否有一些参数我可以传递给uploadBlock,这会让它在完成上传后立即将块的状态设置为COMMITED?
好的,我从文档中找出了我的误解:
“任何块承诺都会覆盖blob的现有属性和元数据,并丢弃所有未提交的块。”
我只想在更新阻止列表时获取租约,而没有意识到当我提交阻止列表时,我会破坏列表中未包含的任何未提交的块。 在编写我的块时我没有获得租约,因为这会破坏我从同时上传多个不同进程所获得的任何并行性。
我只需要尝试别的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.