gpt4 book ai didi

azure - 防止 Azure Blob 在创建时被其他服务访问

转载 作者:行者123 更新时间:2023-12-03 03:15:25 24 4
gpt4 key购买 nike

Azure blob API 有时看起来像是外星人设计的。就像为一些非常奇特的用例而设计的,而大多数简单的用例都需要跳过障碍。这是这样的一个。

我有两个 worker 角色。一种是创建 blob,另一种是处理它们(处理完成后移动到“已完成”文件夹)。 Blob 大小可以适当大,例如 100 MB。显然,我不希望第二个角色在 blob 拥有所有数据之前开始读取 blob。好的,我们可以期待 Lease API 的帮助:获取租约、复制 blob、释放租约。然后,读者还将在处理之前尝试获取租约,因此必须等待。但不行,无法在尚不存在的 blob 上获取租约。另外,我找不到任何方法可以创建一个以“on”租约作为原子操作的 blob。

如果您知道让它发挥作用的技巧,请告诉我。此致。

最佳答案

Obviously, I don't want second role to start reading the blob before the blob has all the data.

假设您正在创建一个 BlockBlob,直到提交 Blob 时(或者换句话说,所有数据都写入到 Blob 中),出于所有意图和目的,Blob 将不存在,并将不会出现在 blob 列表结果中(除非您在列出 blob 时特别要求未提交的 blob)。所以我认为你不必在那里做任何特别的事情。

Okay, one can expect the help from the Lease API: acquire the lease, copy the blob, release the lease. Then, reader will also try to acquire the lease before processing and therefore will have to wait.

对此有一个替代解决方案。您可以使用Azure 队列。当 Blob 创建者辅助角色完成上传 Blob 时,它只是在队列中写入一条消息,处理 Blob 的辅助角色将轮询该消息。假设有许多处理器 worker 角色的实例,那么每个实例都可以从该队列中GET消息,其工作方式类似于blob Lease(消息仅适用于一个实例)然后开始处理 blob。

关于azure - 防止 Azure Blob 在创建时被其他服务访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28099642/

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