2014-05-12 3 views
8

나는 연결된 문자열 변수로 설정된 컨테이너 이름으로 내 storageaccount에 연결된 blob 저장소 컨테이너가 만들어 지도록 회사를 생성해야한다는 요구 사항이 있습니다. 다음을 시도했습니다.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); 
    } 

그러나 예상대로 컨테이너를 만들지 못했습니다. 잘못된 방식으로 진행됩니까? 이것이 가능한가?

건배

답변

18
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(); 
     } 

컨테이너 이름의 guidline를 따르

  • 컨테이너 이름이
    에 부합하는 다음과 같은 유효한 DNS 이름이어야합니다 이름 지정 규칙 : 컨테이너 이름은 문자 또는
    넘버로 시작해야합니다. 문자, 숫자 및 대시 (-) 만 포함 할 수 있습니다.
    문자.
  • 모든 대시 (-) 문자는 바로 앞에 그리고 그 뒤에 문자 또는 숫자 이 와야합니다. 컨테이너 이름에는 연속 대시를 사용할 수 없습니다.

  • 컨테이너 이름의 모든 문자는 소문자 여야합니다.

  • 컨테이너 이름은 3 자에서 63 자 사이 여야합니다.

+0

환호가 방금 다른 게시물에서 이것을 발견했습니다 : – Jay

+0

샘플 코드에서 하나의 사소한 오류가 발생했습니다. CloudBlobContainer의 메소드는 ** CreateIfNotExists ** (존재하지 않음)라고합니다. 그렇지 않으면 고마워, 좋은 예. – sh1rts

2
CloudBlobContainer container = new CloudBlobContainer("https://mystore.blob.core.windows.net/" + subDomain); 

이는 CloudBlobContainer 객체의 인스턴스를 생성합니다. 저장 용량 계정에 컨테이너를 만들려면 CreateIfNotExists 또는 Create 함수를 호출해야합니다.

대신이 코드를보십시오 :

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(); 

    } 
관련 문제