asynchronous - Blob.UploadAsync 方法上的 StorageClientException

标签 asynchronous azure azure-blob-storage

我已经实现了以下异步 blob 上传方法来上传多个 block 。

        var container = GetContainer(containerName);

        var blob = container.GetBlockBlobReference(blobName);

        String[] base64EncodedBlockIds = new String[10];// 10- number of Blocks

        //To upload the blocks in parallel - 10 parallel blocks
        ParallelLoopResult parallelLoopResult = Parallel.For(0,10, i =>
            {
                String base64EncodedBlockId = Convert.ToBase64String(System.BitConverter.GetBytes(i));                                 
                byte[] bytesMemoryStream = GetBytesFromStream(stream);
                using (MemoryStream memoryStream = new MemoryStream(bytesMemoryStream))
                {
                    blob.PutBlock(base64EncodedBlockId, memoryStream, null);// throws an exception "The value for one of the HTTP headers is not in the correct format"

                }
                base64EncodedBlockIds[i] = base64EncodedBlockId;
            });
        blob.PutBlockList(base64EncodedBlockIds); 

它抛出异常“HTTP header 之一的值格式不正确”。

需要您的意见

问候, 维韦克

最佳答案

blob 中的 BlockID 必须具有相同的长度(字符数)。 BlockID“10”比其他的长,这可能是您问题的根源。

一种解决方案是将 BlockID 用零填充到相同的长度。

关于asynchronous - Blob.UploadAsync 方法上的 StorageClientException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12565533/

相关文章:

iphone - 为什么我的 UITableView 在异步重新加载数据期间滚动时会失去流动性?

c# - Async.RunSynchronously() 与 Async.StartAsTask().Result

azure - 是否可以在不使用 azure 门户的情况下查看 azure 函数执行日志?

azure - 在 Azure 容器中查找 Blob

javascript - 如何将 .zip 文件提取到 lambda 函数内的目录

javascript - 使用 map/reduce 和 jQuery 顺序运行任意数量的脚本

php - Azure 媒体服务 sdk 在编码到自适应比特率 MP4 集时返回错误

azure - ADF Dataflow 如何从单独的数组读取列和行并生成 csv 文件

azure - 在 Azure Functions 中将 WindowsAzure.Storage 8.5 与 CloudBlockBlob 和 BlobAttribute 结合使用

node.js - NodeJS 的 Azure "blobService is not defined"错误