Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java azure存储客户端将块放入blob_Java_Azure_Azure Storage - Fatal编程技术网

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

使用java azure存储客户端将块放入blob,java,azure,azure-storage,Java,Azure,Azure Storage,我试图从多个java进程并行地将数据上传到同一块Blob。进程之间没有对话的方式,因此它们不知道最后一个块何时上传 我希望在进程上传每个块之后立即提交它。我原以为可以使用commitBlockList来实现这一点,但它的行为似乎清除了未提交的块。我尝试通过租约同步对blob的访问,这样每个进程都会获得blob上的租约,并通过downloadBlockList下拉区块列表,并更新每个进程上载的区块,但这仍然存在意外行为(区块不断从列表中消失) java azure存储客户端中是否有允许我更新块存储

我试图从多个java进程并行地将数据上传到同一块Blob。进程之间没有对话的方式,因此它们不知道最后一个块何时上传

我希望在进程上传每个块之后立即提交它。我原以为可以使用commitBlockList来实现这一点,但它的行为似乎清除了未提交的块。我尝试通过租约同步对blob的访问,这样每个进程都会获得blob上的租约,并通过downloadBlockList下拉区块列表,并更新每个进程上载的区块,但这仍然存在意外行为(区块不断从列表中消失)


java azure存储客户端中是否有允许我更新块存储blob中单个块的提交状态的操作?或者,是否有一些参数可以传递给uploadBlock,使其在完成上传后立即将块的状态设置为Committed?

好的,我从文档中发现了我的误解:

任何块提交都会覆盖blob的现有属性和元数据,并丢弃所有未提交的块

我只是在想更新阻止列表时才获得租约,没有意识到当我提交阻止列表时,我将销毁列表中未包含的任何未提交的块。我在编写块时没有获得租约,因为这会破坏我在同时上载多个不同进程时获得的任何并行性


我得试试别的办法。

好的,我从文件中找出了我的误解:

任何块提交都会覆盖blob的现有属性和元数据,并丢弃所有未提交的块

我只是在想更新阻止列表时才获得租约,没有意识到当我提交阻止列表时,我将销毁列表中未包含的任何未提交的块。我在编写块时没有获得租约,因为这会破坏我在同时上载多个不同进程时获得的任何并行性


我得试试别的办法。

太好了,请把它标记为答案,它会帮助别人。太好了,请把它标记为答案,它会帮助别人。