2010-04-12 12 views
1

블롭을 업로드/다운로드 할 수있는 방법이 있는지 알고 싶었습니다. webrole을 사용하지 않고 뷰 메타 데이터를 제거 하시겠습니까? 내 응용 프로그램에 gui가 많은 경우 shud가 여러 웹 롤이 있습니까? 어디서나 나는 webrole의 파일 default.aspx.cs에 이벤트에 기반한 blob과 관련된 모든 것을 가지고있다. 그것은 완벽하게 괜찮지 만, 내 GUI가 더 복잡하면 어떨까요?; webrole을 사용하지 않고?

답변

3

블롭은 REST 호출을 통해 액세스 할 수 있으므로 PHP 또는 Java로 작성된 경우에도 원하는 경우 로컬 데스크톱 응용 프로그램으로 블롭을 실제로 조작 할 수 있습니다.

웹 롤의 경우 : 각 역할은 단순히 어딘가의 서버에서 실행되는 가상 머신 일뿐입니다. 웹 역할은 IIS가 추가 된 작업자 역할과 같습니다. 웹 사이트가있는 경우 전체 웹 사이트를 단일 웹 롤에 넣을 수 있습니다. 더 많은 사용자를 처리하기 위해 크기를 조정해야하는 경우 웹 롤의 인스턴스를 두 개 이상 만들 수 있습니다. 그러면 웹 사이트의 모든 요청이 동일한 코드를 실행하는 다양한 인스턴스로 전송됩니다. (예, 특정 앱에 대해 여러 개의 웹 롤을 사용할 수 있습니다. 이는 사이트의 복잡성에 따라 또는 관리자와 방문자가 완전히 다른 UI를 사용하는 경우 실용적 일 수 있습니다.)

1

Azure Storage (Blob 또는 기타)에 액세스 할 때 웹 역할을 사용할 필요가 없습니다. 작업자 역할을 사용하거나, 데스크톱에서 실행중인 Windows Forms 앱이나 Azure에서 실행되지 않는 웹/서비스 앱에서 작업자 역할에 액세스 할 수도 있습니다.

Azure Storage에 액세스하는 방법에 대한 정보는 Azure SDK의 StorageClient 설명서를 참조하십시오. 매우 간단합니다.

0

blob을 사용하려면 Azure 프로젝트 또는 다른 역할이 필요하지 않습니다. .Net 프로젝트에서 Azure 클라이언트를 사용하려면 설정을 앱 설정 섹션에 추가하고 참조하십시오. Azure 클라이언트는 호출을 쉬는 래퍼입니다. 그들에게는 간단한 웹 요청으로 구현하기가 어려운 요청 서명 단계가 있습니다.

<add key="AzureBlobStorage" value="AccountName=youraccountname;AccountKey=YOURKEYeZgfgdfg==;DefaultEndpointsProtocol=https"/> 

당신은 블롭 클라이언트를 얻을 수 있습니다 :

public CloudBlobClient GetBlobClient() 
    { 
     var accountBlob = ConfigurationManager.AppSettings["AzureBlobStorage"]; 

     var account = CloudStorageAccount.Parse(accountBlob.ToString()); 


     return account.CreateCloudBlobClient(); 

    } 


public CloudBlob GetBlob(BlobItem blobItem) 
     { 
      var client = GetBlobClient(); 
      var cloudBlobContainer = client.GetContainerReference(blobItem.ContainerReference); 
      return cloudBlobContainer.GetBlobReference(blobItem.FileName); 
     } 

BlobItem 그냥 래퍼입니다. 기본적으로 blob에 액세스하려면 폴더 이름과 파일 이름이 필요합니다.

public class BlobItem 
{ 
    [Required] 
    [Display(Name = "Container")] 
    public string ContainerReference { get; set; } 
    [Required] 
    [Display(Name = "File name")] 
    public string FileName { get; set; } 

    [Required] 
    [UIHint("MultilineText")] 
    public string Content { get; set; } 

    /// <summary> 
    /// to use in stream mode 
    /// </summary> 
    public Stream Stream { get; set; } 
}