gpt4 book ai didi

azure - 直接帐户到帐户复制完成后,CloudBlob.CopyState 为 null

转载 作者:行者123 更新时间:2023-12-02 23:15:56 31 4
gpt4 key购买 nike

编辑:扩展代码示例以显示如何加载 destinationBlob

我们正在利用直接帐户到帐户复制来传输一组 blob。由于属性在进程启动时会被覆盖,因此我们会定期监视目标 blob,然后在复制完成时设置属性。在大多数情况下,这个过程运行良好。

但是,对于其中几个 Blob,目标 Blob 上没有复制状态(CloudBlob.CopyStatenull)。这些 Blob 事先并不存在,它们是通过调用 CloudBlob.StartCopyAsync() 创建的。

这里有一些简化的代码来概述它的工作原理。

// Start copy operation
var operationId = await destinationBlob.StartCopyAsync(new Uri(sourceBlobUrlWithSas));

...

// In a separate process, check the status after a delay, then repeat on an interval
var destinationBlob = await _destinationContainer.GetBlobReferenceFromServerAsync(blobName);

if (destinationBlob.CopyState.Status == CopyStatus.Success) // <-- CopyState is null
{
// Set properties
}

Microsoft 文档指出,当没有复制状态时,CopyState 将为 null,但没有概述具体情况。根据我自己的实验,目标​​ blob 似乎是立即创建的,并且复制操作完成后,复制状态似乎会在 blob 上保留一段时间。出现问题时,从开始复制到检查 CopyState 之间只有几分钟的时间。

可能是什么问题?是否有设置目标 blob 属性的替代方法?

最佳答案

此问题最终是由于逻辑错误导致 blob 被“触及”,导致复制状态被删除。有关复制状态数据生命周期的文档当然可以更好,但希望这种见解可以帮助遇到类似问题的其他人。

关于azure - 直接帐户到帐户复制完成后,CloudBlob.CopyState 为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66964087/

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