【问题标题】:Create a blob storage container programmatically以编程方式创建 Blob 存储容器
【发布时间】:2014-06-29 17:19:42
【问题描述】:

我有一个要求,即在创建公司时,在我的 storageaccount 中创建关联的 blob 存储容器,容器名称设置为传入的字符串变量。我尝试了以下方法:

public void AddCompanyStorage(string subDomain)
    {
        //get the storage account.
        CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
            System.Configuration.ConfigurationManager.AppSettings["StorageConnectionString"].ToString());

        //blob client now
        CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();            

        //the container for this is companystyles
        CloudBlobContainer container = new CloudBlobContainer("https://mystore.blob.core.windows.net/" + subDomain);
    }

但是,这并没有像我预期的那样创建容器,我是否以错误的方式进行此操作?这可能吗?

【问题讨论】:

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


    【解决方案1】:
    CloudBlobContainer container = new CloudBlobContainer("https://mystore.blob.core.windows.net/" + subDomain);
    

    这只是创建CloudBlobContainer 对象的一个​​实例。要在您的存储帐户中创建容器,您需要在此对象上调用 CreateIfNotExistsCreate 函数。

    试试这个代码:

    public void AddCompanyStorage(string subDomain)
        {
            //get the storage account.
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
                System.Configuration.ConfigurationManager.AppSettings["StorageConnectionString"].ToString());
    
            //blob client now
            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();            
    
            //the container for this is companystyles
            CloudBlobContainer container = blobClient.GetContainerReference(subDomain);
            container.CreateIfNotExists();
    
        }
    

    【讨论】:

      【解决方案2】:
          public void AddCompanyStorage(string subDomain)
              {
                  //get the storage account.
                  CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
                      System.Configuration.ConfigurationManager.AppSettings["StorageConnectionString"].ToString());
      
                  //blob client now
                  CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();            
      
                  //the container for this is companystyles
                 CloudBlobContainer container = blobClient.GetContainerReference(subDomain);
      
                  //Create a new container, if it does not exist
                 container.CreateIfNotExists();
              } 
      

      遵循容器名称指南:

      • 容器名称必须是有效的 DNS 名称,符合
        以下命名规则:容器名称必须以字母开头或
        数字,并且只能包含字母、数字和破折号 (-)
        字符。
      • 每个破折号 (-) 字符必须紧接在其前后 一个字母或数字;容器中不允许出现连续的破折号 名字。

      • 容器名称中的所有字母都必须小写。

      • 容器名称的长度必须为 3 到 63 个字符。

      【讨论】:

      • Cheers 刚刚在其他帖子上发现了这个 :)
      • 您的示例代码中有一个小错误; CloudBlobContainer 上的方法称为 CreateIfNotExists(不存在)。否则谢谢,很好的例子。
      猜你喜欢
      • 2011-10-12
      • 2018-02-09
      • 2011-02-24
      • 1970-01-01
      • 2013-02-23
      • 1970-01-01
      • 2021-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多