gpt4 book ai didi

c# - 无法追加到 Azure 中的追加 Blob

转载 作者:行者123 更新时间:2023-11-30 23:01:02 27 4
gpt4 key购买 nike

我正在尝试对 azure 中的附加 blob 执行教科书附加。

首先,我创建一个 blob 容器。我知道此操作成功,因为我可以在存储资源管理器中看到该容器。

接下来我创建 blob。我知道此操作成功,因为我可以在存储资源管理器中看到该 blob。

最后,我尝试使用以下代码附加到 blob。

        var csa = CloudStorageAccount.Parse(BLOB_CONNECTION_STRING);
var client = csa.CreateCloudBlobClient();
var containerRefernece = client.GetContainerReference(CONTAINER_NAME);
var blobrefernce = containerRefernece.GetAppendBlobReference(BLOB_NAME);

var ms = new MemoryStream();
var sr = new StreamWriter(ms);

sr.WriteLine(message);
ms.Seek(0, SeekOrigin.Begin);
await blobrefernce.AppendBlockAsync(ms);

无论我做什么,我都会遇到以下异常。

windowsAzure.Storage StorageException: The value for one of the HTTP headers is not in the correct format.

我有点不知道如何继续。我什至无法从异常中确定哪些参数是问题所在。连接字符串是直接从 Azure 门户复制的。注意我使用的是最新版本 (9.3.0) 的 WindowsAzure.Storage NuGet 包。

有什么想法可以找出问题所在吗?

谢谢!

最佳答案

只需在sr.WriteLine(message);后添加sr.Flush();即可使缓冲数据立即写入底层流。

StreamWriter

AutoFlush 默认为 false,因此在我们使用 Flush 或 Close 之前,缓冲数据不会写入目的地。

我们需要使用MemoryStream,它是StreamWriter的构造参数,所以我们不能使用Close,否则我们会得到像Cannot access a Closed Stream这样的异常。

关于c# - 无法追加到 Azure 中的追加 Blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51277350/

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