gpt4 book ai didi

azure - 在 Azure 开发存储上,并行上传 block blob 时收到 "the specified blob already exists"

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

想知道你们聪明的人是否可以帮助我解决一个严重的错误。

我正在并行上传 blob block ,并且在针对实时存储运行时效果非常好,但是针对开发存储,我偶尔会收到错误“指定的 blob 已存在”。奇怪/讽刺的是,如果 Blob 确实已经存在,那么我永远不会看到错误。

这是我的代码:

        var container = _cloudBlobClient.GetContainerReference(containerName);
container.CreateIfNotExist();

CloudBlockBlob blob = container.GetBlockBlobReference(blobname);

// calc number of blocks. Add 1 for remainder
var blockCount = ((int)Math.Floor((double)(length / mainBlockSize))) + 1;
var blockIds = new List<string>();

Parallel.For(0, blockCount, j =>
{
int blockSize = mainBlockSize;


// if the last block then calculate the remaining block size
if (j == blockCount - 1)
blockSize = (int)length - (mainBlockSize * (blockCount - 1));

var bytes = new byte[blockSize];

string blockId = Convert.ToBase64String(Encoding.UTF8.GetBytes(j.ToString("00000")));

lock (_mutex)
{
// these operations need to co-exist so the correct block order is maintained
blockIds.Add(blockId);
stream.Read(bytes, 0, blockSize);
}

blob.PutBlock(blockId, new MemoryStream(bytes), null);
});

// commit the blob with the list of blocks
blob.PutBlockList(blockIds);

我尝试过设置

_cloudBlobClient.ParallelOperationThreadCount = 1;

按照此线程的建议What is the Behaviour of UploadFile-CloudBlockBlob?看看它是否会产生任何影响,但它仍然出错。

嗯!我第一次遇到“在现场工作但在我的机器上不起作用”的错误! :)

我已经使用 Fiddler 检查了所有存储请求,Live 和 Dev 之间没有区别,因此我假设这是开发存储的错误。关于如何最好地处理这个问题有什么想法吗?

谢谢!

最佳答案

您是否已将此内容发布到 Windows Azure MSDN 论坛 ( http://tinyurl.com/wazforum ) 上?

如果您这样做,WA 存储团队的人员应该介入、调查并确认这是开发存储的错误。

关于azure - 在 Azure 开发存储上,并行上传 block blob 时收到 "the specified blob already exists",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3106187/

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