c#Azure无法设置blob层

Mar*_*son 4 c# blob azure azure-storage

CloudBlockBlob没有任何方法可以将blob层设置为hot/cool/archive.我还检查了其他blob类型,他们也没有允许这种方法的方法.

IE这个方法:https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-tier

他们是否有办法在C#中使用azure存储将代码中的blob层从热变为冷?

Zha*_*oft 6

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


Tom*_*SFT 6

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

正如赵星路提到的,我们可以使用CloudBlockBlob.SetStandardBlobTier.

注意:允许在高级存储帐户中的页 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;
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


Vic*_*orV 5

使用适用于 .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);
Run Code Online (Sandbox Code Playgroud)

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

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