지난 시간에는 Blob Storage 서비스 사용 시 기본적으로 컨테이너 구조에 대해서 살펴보았습니다.

이번에는 Container 내에 Blob 데이터의 리스트를 조회하고 업로드, 다운로드 기능에 해당되는

클래스 라이브러리 사용법과 내용에 대해서 살펴보겠습니니다.

 

지금까지 테이블, Blob 에서 사용되는 Storage 라이브러리 내의 클래스들은 내부적으로

사실 REST API를 이용하여 래핑(Warpping) 한 것 입니다.

관련 기능에 대해 라이브러리를 이용하여 쉽게 기능 구현이 가능하도록 REST API 를   

추상화 하여 클래스 구조로 만든 것 입니다.

REST API 사용법은 다음에 따로 알아보도록 하겠습니다.

 

Blob 리스트를 가져오는 기능도 메서드로 구현되어 있어서 사용하기 매우 간단합니다.

서비스 롤에 연결 문자열을 지정하는 방법 외에 직접 CloudBlobClient 클래스에서 서비스

Endpoint 주소와 AccessKey 를 지정해서 인증을 받을 수도 있습니다.

아래 예제는 간단히 Table 태그로 출력한 예제 입니다.

 

Blob 리스트 출력

CloudBlobClient blobClient =

new CloudBlobClient("http://algorizmstorage.blob.core.windows.net", new StorageCredentialsAccountAndKey("name",

"accesskey"));

 

CloudBlobContainer blobcontainer =

blobClient.GetContainerReference("testcontainer");

 

BlobRequestOptions options = new BlobRequestOptions();

options.UseFlatBlobListing = true;

 

var blobitem = blobcontainer.ListBlobs(options);

options.BlobListingDetails = BlobListingDetails.Snapshots;

 

Response.Write("<table border='1' cellpadding='0' cellspacing='0'>");

Response.Write("<tr><td>Uri</td><td>View</td></tr>");

foreach (var blob in blobitem)

{

Response.Write("<tr><td>" + blob.Uri + "</td>");

Response.Write("<td><a href=" + blob.Uri.AbsoluteUri + "' target='_new'>View</a></td></tr>");

}

Response.Write("</table>");

 

 

반환되는 리스트는 BlobProperties 클래스 형을 반환하며 해당 프로퍼티 정보는아래 URL 참고하시기 바랍니다.

http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storageclient.blobproperties_properties.aspx

 

Blob 업로드

CloudBlobClient blobClient =

new CloudBlobClient("http://algorizmstorage.blob.core.windows.net", new StorageCredentialsAccountAndKey("name",

"accesskey”

 

CloudBlobContainer blobcontainer =

blobClient.GetContainerReference("testcontainer");

 

var blob = blobcontainer.GetBlobReference(this.upfile.FileName);

 

blob.UploadByteArray(this.upfile.FileBytes);

 

UpLoadByteArray 메서드가 지원되므로 blob 의 레퍼런스를 얻은 후 업로드 처리를 해주면 됩니다.

UpLoad 관련 지원 메서드는 Stram, Byte, Text 형식에 대해서 지원해 주는 각 메서드가 있으며

자세한 정보는 아래 URL을 참고하시기 바랍니다.

http://msdn.microsoft.com/en-us/library/ee772733.aspx

 

Blob 다운로드

string blobname = this.dnfilename.Text.Trim();

 

CloudBlobClient blobClient =

new CloudBlobClient("http://algorizmstorage.blob.core.windows.net", new StorageCredentialsAccountAndKey("name ",

"accesskey”

 

CloudBlobContainer blobcontainer =

blobClient.GetContainerReference("testcontainer");

 

var blob = blobcontainer.GetBlobReference( blobname);

 

using (var stream = new MemoryStream())

{

blob.DownloadToStream(stream);

 

Response.ContentType = blob.Properties.ContentType;

Response.AddHeader("content-disposition", "attachment; filename=" + blobname);

Response.AddHeader("Content-Length", stream.Length.ToString());

Response.BinaryWrite(stream.ToArray());

}

 

 

위의 예제는 ASP.NET 에서 파일 다운로드 시 자주 사용하는 방법 중의 하나인데요.

Blob 관련된 코드는 blobname 을 지정하여 해당 blobReference 를 얻은 후

DownLoadToStream 메서드를 호출하여 Stream을 채우는 부분에 해당 됩니다. 

 

HTTP Header 를 지정해서 웹 페이지에서 해당 파일이 다운로드 되게 해주는 코드는

ASP.NET 에서 웹 애플리케이션 개발 시 사용되는 부분 입니다.

 

글을 쓰면서 느끼는 건데 클라우드 개발은 종합 선물 세트(?) 인 듯 합니다.

Azure 환경을 이용하는 부분은 물론이고 각 서비스 룰에 해당되는 ASP.NET,

WCF, Worker Role 등을 알아야 기능과 역활에 맞게 개발이 가능하다는 것 입니다..

당연한 얘기를 쓰고 있었네요;; 쿨럭...

 

Download 관련 메서드도 여러개가 지원되는데 아래 URL을 참고하시기 바랍니다.

http://msdn.microsoft.com/en-us/library/ee772733.aspx

업로드, 다운로드 둘 다 CloubBlob Class 에 포함되는 메서드 입니다.

 

실행화면

blob리스트실행화면.png




Azure - 클라우드 컴퓨팅 - 시리즈 강좌 리스트
[Azure강좌] 1. 클라우드와 원도우 애저 소개
[Azure강좌] 2. SDK 설치와 Azure 무료 신청
[Azure강좌] 3. ASP.NET(Web Role) Hello World
[Azure강좌] 4. 프로젝트 패키지 Azure 배포
[Azure강좌] 5. Windows Azure Storage 서비스와 계정 설정
[Azure강좌] 6. 테이블 서비스와 StorageClient 라이브러리 #1
[Azure강좌] 7. SQL Azure 소개와 서버 구성
[Azure강좌] 8. 데이터베이스 생성과 SSMS 사용
[Azure강좌] 9. SQL Azure 마이그레이션 위자드 사용하기
[Azure강좌] 10. SQL Azure 방화벽 설정
[Azure강좌] 11. SQL Azure Manage 툴 사용해 보기
[Azure강좌] 12. 테이블 서비스와 StorageClient 라이브러리 #2
[Azure강좌] 13. SQL Azure ASP.NET GridView 바인딩
[Azure강좌] 14. Blob 서비스와 Container
[Azure강좌] 15. Blob 리스트 조회, 업로드 다운로드 예제
[Azure강좌] 16. 웹사이트 콘텐트 Blob 스토리지 이용
[Azure강좌] 17. Windows Azure CDN 설정
[Azure강좌] 18. Queue 서비스와 생성, 삭제, 메타데이터 추가
[Azure강좌] 19. Queue 의 메시지 피킹 및 가져오기, 추가, 삭제
[Azure강좌] 20. [Tip] SQL Azure 방화벽 룰 설정 예제 애플리케이션



Azure - 클라우드 컴퓨팅 - 동영상 참고 자료

[Azure 동영상 강좌] 1. 클라우드와 원도우 애저 소개 (애저 포털 둘러보기) 

[Azure 동영상 강좌] 2. SDK 설치와 Azure 무료 신청
[Azure 동영상 강좌] 3. ASP.NET(Web Role) Hello World
[Azure 동영상 강좌] 4. 프로젝트 패키지 Azure 배포
[Azure 동영상 강좌] 5. Windows Azure Storage 서비스와 계정 설정
[Azure 동영상 강좌] 6. 테이블 서비스와 StorageClient 라이브러리 #1
[Azure 동영상 강좌] 7. SQL Azure 소개와 서버 구성
[Azure 동영상 강좌] 8. 데이터베이스 생성과 SSMS 사용
[Azure 동영상 강좌] 9. SQL Azure 마이그레이션 위자드 사용하기
[Azure 동영상 강좌] 10. SQL Azure 방화벽 설정
[Azure 동영상 강좌] 11. SQL Azure Manage 툴 사용해 보기
[Azure 동영상 강좌] 12. 테이블 서비스와 StorageClient 라이브러리 #2
[Azure 동영상 강좌] 13. SQL Azure ASP.NET GridView 바인딩
[Azure 동영상 강좌] 14. Blob 서비스와 Container
[Azure 동영상 강좌] 15. Blob 리스트 조회, 업로드 다운로드 예제
[Azure 동영상 강좌] 16. 웹사이트 콘텐트 Blob 스토리지 이용
[Azure 동영상 강좌] 17. Windows Azure CDN 설정
[Azure 동영상 강좌] 18. Queue 서비스와 생성, 삭제, 메타데이터 추가
[Azure 동영상 강좌] 19. Queue 의 메시지 피킹 및 가져오기, 추가, 삭제
[Azure 동영상 강좌] 20. [Tip] SQL Azure 방화벽 룰 설정 예제 애플리케이션





profile

안녕하세요. 이호엽 입니다!

ASP.NET 프론티어 

블로그: algorizm.tistory.com