블롭을 업로드/다운로드 할 수있는 방법이 있는지 알고 싶었습니다. webrole을 사용하지 않고 뷰 메타 데이터를 제거 하시겠습니까? 내 응용 프로그램에 gui가 많은 경우 shud가 여러 웹 롤이 있습니까? 어디서나 나는 webrole의 파일 default.aspx.cs에 이벤트에 기반한 blob과 관련된 모든 것을 가지고있다. 그것은 완벽하게 괜찮지 만, 내 GUI가 더 복잡하면 어떨까요?; webrole을 사용하지 않고?
답변
블롭은 REST 호출을 통해 액세스 할 수 있으므로 PHP 또는 Java로 작성된 경우에도 원하는 경우 로컬 데스크톱 응용 프로그램으로 블롭을 실제로 조작 할 수 있습니다.
웹 롤의 경우 : 각 역할은 단순히 어딘가의 서버에서 실행되는 가상 머신 일뿐입니다. 웹 역할은 IIS가 추가 된 작업자 역할과 같습니다. 웹 사이트가있는 경우 전체 웹 사이트를 단일 웹 롤에 넣을 수 있습니다. 더 많은 사용자를 처리하기 위해 크기를 조정해야하는 경우 웹 롤의 인스턴스를 두 개 이상 만들 수 있습니다. 그러면 웹 사이트의 모든 요청이 동일한 코드를 실행하는 다양한 인스턴스로 전송됩니다. (예, 특정 앱에 대해 여러 개의 웹 롤을 사용할 수 있습니다. 이는 사이트의 복잡성에 따라 또는 관리자와 방문자가 완전히 다른 UI를 사용하는 경우 실용적 일 수 있습니다.)
Azure Storage (Blob 또는 기타)에 액세스 할 때 웹 역할을 사용할 필요가 없습니다. 작업자 역할을 사용하거나, 데스크톱에서 실행중인 Windows Forms 앱이나 Azure에서 실행되지 않는 웹/서비스 앱에서 작업자 역할에 액세스 할 수도 있습니다.
Azure Storage에 액세스하는 방법에 대한 정보는 Azure SDK의 StorageClient 설명서를 참조하십시오. 매우 간단합니다.
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; }
}