gpt4 book ai didi

c# - 如何使用新的 Azure 存储 SDK v12 打开新 Blob 的可写流?

转载 作者:行者123 更新时间:2023-12-04 00:16:49 26 4
gpt4 key购买 nike

我正在使用 Azure 存储 SDK v12,并且正在寻找一种方法来打开特定 Blob 的流,就像以前的版本一样:

CloudBlobClient cloudBlobClient = account.CreateCloudBlobClient();

CloudBlobContainer container = cloudBlobClient.GetContainerReference("zipfiles");

var blob = container.GetBlockBlobReference(Guid.NewGuid().ToString());

// Here is the the functionality I am looking for: OpenWrite that returns a Stream.
using (Stream blobStream = blob.OpenWrite())
{
....
}

问题是我在新 API 中找不到可以访问 StreamOpenWrite 方法。

问题

如何使用新的 Azure 存储 SDK v12 打开 Blob 的可写流?

<小时/>

解决方法

由于我正在使用 Azure Functions,因此我有一个解决方法,其中涉及使用 Blob 作为函数的 Out 参数:

public async Task RunAsync(
[BlobTrigger("data/{listId}/{name}.txt", Connection = "storageAccountConnectionString")]
Stream sourceStream,
string listId,
string name,
[Blob("data/{listId}/processed/{name}.txt", FileAccess.Write, Connection = "storageAccountConnectionString")]
Stream destinationStream)
{
// Here I use the destinationStream instance to upload data as it is being processed. It prevents me from loading everything in memory before calling the UploadAsync method of a BlobClient instance.
}

最佳答案

您需要使用 Azure.Storage.Blobs.Specialized 命名空间中的 GetBlockBlobClient 扩展方法:

public async Task<Stream> CreateOutputStream(string fullFilePath)
{
var blockBlobClient = _blobContainerClient.GetBlockBlobClient(fullFilePath);
var stream = await blockBlobClient.OpenWriteAsync(true);

return stream;
}

关于c# - 如何使用新的 Azure 存储 SDK v12 打开新 Blob 的可写流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63122877/

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