使用java azure存储客户端将块放入blob
我试图从多个java进程并行地将数据上传到同一块Blob。进程之间没有对话的方式,因此它们不知道最后一个块何时上传 我希望在进程上传每个块之后立即提交它。我原以为可以使用commitBlockList来实现这一点,但它的行为似乎清除了未提交的块。我尝试通过租约同步对blob的访问,这样每个进程都会获得blob上的租约,并通过downloadBlockList下拉区块列表,并更新每个进程上载的区块,但这仍然存在意外行为(区块不断从列表中消失)使用java azure存储客户端将块放入blob,java,azure,azure-storage,Java,Azure,Azure Storage,我试图从多个java进程并行地将数据上传到同一块Blob。进程之间没有对话的方式,因此它们不知道最后一个块何时上传 我希望在进程上传每个块之后立即提交它。我原以为可以使用commitBlockList来实现这一点,但它的行为似乎清除了未提交的块。我尝试通过租约同步对blob的访问,这样每个进程都会获得blob上的租约,并通过downloadBlockList下拉区块列表,并更新每个进程上载的区块,但这仍然存在意外行为(区块不断从列表中消失) java azure存储客户端中是否有允许我更新块存储
java azure存储客户端中是否有允许我更新块存储blob中单个块的提交状态的操作?或者,是否有一些参数可以传递给uploadBlock,使其在完成上传后立即将块的状态设置为Committed?好的,我从文档中发现了我的误解: 任何块提交都会覆盖blob的现有属性和元数据,并丢弃所有未提交的块 我只是在想更新阻止列表时才获得租约,没有意识到当我提交阻止列表时,我将销毁列表中未包含的任何未提交的块。我在编写块时没有获得租约,因为这会破坏我在同时上载多个不同进程时获得的任何并行性
我得试试别的办法。好的,我从文件中找出了我的误解: 任何块提交都会覆盖blob的现有属性和元数据,并丢弃所有未提交的块 我只是在想更新阻止列表时才获得租约,没有意识到当我提交阻止列表时,我将销毁列表中未包含的任何未提交的块。我在编写块时没有获得租约,因为这会破坏我在同时上载多个不同进程时获得的任何并行性
我得试试别的办法。太好了,请把它标记为答案,它会帮助别人。太好了,请把它标记为答案,它会帮助别人。