使用fluent API在c#中创建blob存储容器

时间:2018-02-26 12:44:26

标签: c# azure azure-storage azure-storage-blobs

我正在使用C# management API of Azure在云端创建资源。我被困在blob存储中创建一个容器。我确实在these instructions之后创建了一个存储帐户:

new_str="My name is 67776. My user name is Souravc. 67776 and Souravc is great person"

但我不知道该怎么做。从Microsoft documentation我似乎必须检索// storageAccount here is a Microsoft.Azure.Management.Storage.Fluent.IStorageAccount instance var storageAccount = _azure.StorageAccounts .Define(name) .WithRegion(region) .WithExistingResourceGroup(resourceGroup) .WithBlobEncryption() .WithOnlyHttpsTraffic() .WithBlobStorageAccountKind() .WithAccessTier(AccessTier.Hot) .Create(); 实例,但我使用上面代码获得的Microsoft.WindowsAzure.Storage.CloudStorageAccount实例存在于命名空间storageAccount中,而我还没有找到了从那里获得Microsoft.Azure.Management.Storage.Fluent的任何方法。

是否可以直接使用fluent命名空间中的API创建容器?如果没有,我如何从我的CloudStorageAccount实体获取CloudStorageAccount个实例?

This answer in SO没有帮助,因为它确实直接使用IStorageAccount命名空间。

2 个答案:

答案 0 :(得分:5)

  

是否可以直接使用API​​创建容器   流利的命名空间?如果没有,我如何获得CloudStorageAccount   来自我的IStorageAccount的实例?

至少截至今天,这是不可能的。在Azure中管理存储帐户时,有两个REST API - Storage Resource Provider REST APIStorage Service REST API。前者处理存储帐户本身的管理(如创建/更新等),而后者处理存储帐户中的数据。您可以说前API处理控制平面,后者处理数据计划。创建blob容器属于后一类。

您提到的

Fluent APIStorage Resource Provider API的包装器,而Microsoft.WindowsAzure.Storage库是Storage Service REST API的包装器。您需要在项目中引用此库以创建blob容器。

您可以使用Fluent API获取访问密钥(密钥1或密钥2)。获得密钥后,您将使用Microsoft.WindowsAzure.Storage库创建CloudStorageAccount实例,并使用该库创建一个blob容器。我知道这不是你正在寻找的答案,但不幸的是,这是今天唯一的方式。

答案 1 :(得分:0)

这现在可以通过Fluent API实现。使用您的StorageAccount,您可以执行以下操作:

storageAccount.Manager.BlobContainers.DefineContainer(containerName)
.WithExistingBlobService(resourceGroupName, storageAccountName)
.WithPublicAccess(PublicAccess.None)
.CreateAsync();