ddev logs
没有任何方法可以将blob层设置为CloudBlockBlob
。我还检查了其他blob类型,但它们没有允许这样做的方法。
I.E此方法:https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-tier
他们有什么方法可以在C#中使用azure存储将代码中的blob层从热变为冷?
答案 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;
答案 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。