c#Azure无法设置blob层

时间:2018-04-04 20:55:28

标签: c# azure blob azure-storage

ddev logs没有任何方法可以将blob层设置为CloudBlockBlob。我还检查了其他blob类型,但它们没有允许这样做的方法。

I.E此方法:https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-tier

他们有什么方法可以在C#中使用azure存储将代码中的blob层从热变为冷?

3 个答案:

答案 0 :(得分:5)

我认为该方法正是您所需要的:CloudBlockBlob.SetStandardBlobTier。也许您没有检查最新版本的Azure存储客户端库?

答案 1 :(得分:4)

  

他们有什么方法可以在C#中使用azure存储将代码中的blob层从热变为冷?

赵兴禄提到我们可以使用CloudBlockBlob.SetStandardBlobTier

  

注意 blob 中的页面blob和 blob中的块blob 上允许此操作存储帐户

以下代码可以正常使用。我使用库WindowsAzure.Storage 9.1.1

var cloudBlobClient = storageAccount.CreateCloudBlobClient();
var container = cloudBlobClient.GetContainerReference("container");
var blob = container.GetBlockBlobReference("blob name");
blob.SetStandardBlobTier(StandardBlobTier.Cool);
blob.FetchAttributes();
var tier = blob.Properties.StandardBlobTier;

enter image description here

答案 2 :(得分:4)

使用适用于.NET的Azure Blob存储客户端库v12,将 myaccount 替换为存储帐户的名称,将 mycontainer 替换为容器名称和 myblob 以及要更改其层的Blob名称:

var sharedKeyCredential = new StorageSharedKeyCredential("myaccount", storageAccountKey);
var baseBlobContainerUrl = string.Format("{0}.blob.core.windows.net", "myaccount");
var blobServiceClient = new BlobServiceClient(new Uri($"https://{baseBlobContainerUrl}"), sharedKeyCredential);
var containerClient = blobServiceClient.GetBlobContainerClient("mycontainer");
BlobClient blobClient = containerClient.GetBlobClient("myblob");
// Set access tier to cool.
await blobClient.SetAccessTierAsync(AccessTier.Cool);

如果您正在使用Azure Gov,请改用此URL "{0}.blob.core.usgovcloudapi.net"

请记住,您的存储帐户应支持Cool Storage。