gpt4 book ai didi

.net - AppendBlockAsync - 如果不存在则创建 Blob

转载 作者:行者123 更新时间:2023-12-03 02:35:07 27 4
gpt4 key购买 nike

我们在分布式环境中有多个并行工作线程,使用 AppendBlockAsync将数据附加到 blob。每小时都会创建一个新的 blob,并且所有工作线程将开始并行附加到新的 blob。

问题是何时何地创建 blob。我没有看到可以传递给 AppendBlockAsync 的有效 AccessCondition,这样如果 blob 不存在,它就会创建一个 blob 并附加到它。

今天,我们捕获 AppendBlockAsync 的异常,并根据异常类型创建 blob(如果不存在)。但从客户( worker )那里做这件事似乎不合适。服务器(Azure存储帐户)应该有办法处理这个问题。

最佳答案

你应该在客户端处理它。

例如,使用.Exists()方法检查文件是否存在。如果不存在,则创建该文件。

示例代码如下所示:

        //your other code
var client = storageAccount.CreateCloudBlobClient();
var container = client.GetContainerReference("xxx");

var blobclient = container.GetAppendBlobReference("xx");
if (!blobclient.Exists())
{
try
{
blobclient.CreateOrReplace(AccessCondition.GenerateIfNotExistsCondition(), null, null);
}
catch (StorageException)
{ }

}

await blobclient.AppendBlockAsync(xxx);

//other code.

关于.net - AppendBlockAsync - 如果不存在则创建 Blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63481323/

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