簡體   English   中英

如何使用 BlobLeaseClient 租用 Azure 存儲容器中的單個 Blob?

[英]How do I lease an individual blob in an Azure storage container using BlobLeaseClient?

圍繞此的文檔似乎非常混亂。 使用CloudBlobContainer.AcquireLease方法使用現已棄用的Microsoft.Azure.Storage.Blob nuget 包似乎可以做到這一點。

更新后的BlobLeaseClient有一個Acquire()方法,它指出:

Acquire(TimeSpan, RequestConditions, CancellationToken) 操作獲取Blob或容器的租約。

但目前尚不清楚應該如何使用它。 我找不到任何這方面的例子,盡管我找到了棄用軟件包的例子。

目前我有這個:

//injected using AddBlobServiceClient, etc. Uses DefaultAzureCredential
private BlobContainerClient blobContainerClient;

blobContainerClient = blobServiceClient.GetBlobContainerClient("containerName");



BlobLeaseClient blc = blobContainerClient.GetBlobLeaseClient();

//throws exception here
BlobLease bl = await blc.AcquireAsync(new TimeSpan(0, 0, 30));

但是當我運行它時,我得到:

The value for one of the HTTP headers is not in the correct format.
RequestId:<guid>
Time:2020-09-30T10:28:47.8781946Z
Status: 400 (The value for one of the HTTP headers is not in the correct format.)
ErrorCode: InvalidHeaderValue

Headers:
Server: Windows-Azure-Blob/1.0,Microsoft-HTTPAPI/2.0
x-ms-request-id: <guid>
x-ms-client-request-id: <guid>
x-ms-version: 2019-12-12
x-ms-error-code: InvalidHeaderValue
Date: Wed, 30 Sep 2020 10:28:47 GMT
Content-Length: 328
Content-Type: application/xml

我也不確定這是否會租用鮑勃,因為我從未指定過要租用的 blob。

有誰知道如何在這種情況下正確使用 BlobLeaseClient?

首先,您需要獲得對 blob 的引用:

blobContainerClient = blobServiceClient.GetBlobContainerClient("containerName");
var blobClient = blobContainerClient.GetBlobClient("my.blob");

然后創建一個租用客戶端並獲得一個租用:

var blc = blobClient.GetBlobLeaseClient();
var bl = await blc.AcquireAsync(TimeSpan.FromSeconds(30))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM