繁体   English   中英

使用java azure存储客户端将块放入blob中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM