gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 11:34:19 25 4
gpt4 key购买 nike

我正在尝试从多个 java 进程并行地将数据上传到同一个 Block Blob。这些进程无法相互通信,因此它们不知道最后一个 block 何时上传。

我想在进程上传每个 block 后立即提交它。我以为我可以使用 commitBlockList 来执行此操作,但它的行为似乎会清除未提交的 block 。我尝试通过租约同步对 blob 的访问,以便每个进程都会获取 blob 上的租约并通过 downloadBlockList 下拉阻止列表,并更新每个进程已上传的 block ,但这仍然会出现意外行为( block 不断从列表)。

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

最佳答案

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

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

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

我必须尝试其他方法。

关于java - 使用 java azure 存储客户端将 block 放入 blob 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43456500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com