gpt4 book ai didi

azure - 如何使用 Azure BlobServiceClient 监视异步上传的进度

转载 作者:行者123 更新时间:2023-12-02 07:44:38 27 4
gpt4 key购买 nike

这看起来应该非常简单,但是,无论出于何种原因,这些选项对我来说没有意义。我正在实例化 BlobServiceClient:

this.FileClient = new BlobServiceClient(new Uri(ENDPOINT), credentials);

然后我得到一个 BlobContainerClient 实例:

var container = this.FileClient.GetBlobContainerClient(this.GetContainerName(format));

然后我调用 UploadBlobAsync:

await container.UploadBlobAsync(filePath, content);

我想做的就是监控上传进度。如果您查找 BlobClient 类,您会发现有一个 BlobUploadOptions 类,它具有 IProgress 类型的 ProgressHandler 属性,这正是我正在寻找的......但 BlobContainerClient 似乎没有以任何方式使用该类(为什么?)。另外,如果您查看 BlobClient 类的 UploadAsync 方法,会发现该方法有 2 个重载,除了 BlobUploadOptions.... 类型的参数外,第一个允许您指定将要上传的 Blob 放在何处,另一个允许您指定要上传的 Blob 的位置。您可以指定要上传的内容...但似乎没有重载允许您指定要上传的内容,同时指定将其放在哪里。我很困惑。

此外...我在应用程序的生命周期中使用了 1 个 BlobServiceClient 实例。这样合适吗?

最佳答案

首先,您应该使用BlobClient来监控上传进度。

对于您的问题:

but it doesn't seem the BlobContainerClient uses that class in any way(why?)

这是设计使然。目前,BlobContainerClient 不支持此参数。您可以在 github page 中提出功能请求.

Also, if you look at the UploadAsync methods of the BlobClient class,there are 2 overloads of the method that except a parameter of typeBlobUploadOptions......

我认为您指的是这两种方法:

UploadAsync(字符串路径,BlobUploadOptions 选项,CancellationToken 取消 token = 默认)

UploadAsync(流内容、BlobUploadOptions 选项、CancellationToken 取消 token = 默认)

你应该知道何时使用它们,这样你就不会感到困惑。

使用UploadAsync(string path, xxx)时,您应该指定您正在尝试的文件的路径(例如d:\myfolder\test.txt)上传。

当使用UploadAsync(Stream content,xxx)时,表示您已经获取了文件的流。例如,您使用此方法 var mystream = File.OpenRead("file path") 获取文件内容的流,然后将该流传递给此方法 UploadAsync(Stream content, xxx)

Also...I'm using 1 instance of the BlobServiceClient for the life ofthe application. Is that proper?

是的,没问题。

通过代码监控上传进度的使用方法可以引用this blog了解更多详情。

如果您还有其他问题,请告诉我。

关于azure - 如何使用 Azure BlobServiceClient 监视异步上传的进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64164896/

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