Windows Azure 강의실

시삽: 레드플러스 님 
게시판 이동:
 제목 : 코드샘플: BLOB 스토리지 사용 관련 코드 모음(컨테이너, 업로드, 다운로드, 삭제, 리스트)
글번호: 11
작성자: Administrator ( 레드플러스 / redplus@live.com )
작성일: 2013/01/16 오후 7:07:51
조회수: 5080
// 참고 URL : http://www.windowsazure.com/en-us/develop/net/how-to-guides/blob-storage/
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WindowsAzureBlobStorageTest
{
    class Program
    {
        private static string connectionString = "DefaultEndpointsProtocol=https;AccountName=[스토리지계정명];AccountKey=[액세스키]";
        static void Main(string[] args)
        {
            // 스토리지 계정 -> 컨테이너 -> BLOB(파일)
            //CreateContainer();
            //UploadFile();
            ListFiles();
            //DownloadBlob();
            //DeleteBlob();
            //DownloadText();
        }

        private static void DownloadText()
        {
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
            CloudBlobContainer container = blobClient.GetContainerReference("redpluscontainer");

            CloudBlockBlob blockBlob = container.GetBlockBlobReference("A.txt");

            // 텍스트로 다운
            string text = String.Empty;
            using (var memoryStream = new MemoryStream())
            {
                blockBlob.DownloadToStream(memoryStream);
                text = System.Text.Encoding.UTF8.GetString(memoryStream.ToArray());
            }
            Console.WriteLine(text);
        }

        private static void DeleteBlob()
        {
            ListFiles();

            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
            CloudBlobContainer container = blobClient.GetContainerReference("redpluscontainer");

            CloudBlockBlob blockBlob = container.GetBlockBlobReference("B.txt");
            blockBlob.Delete(); // 삭제

            ListFiles();
        }

        private static void DownloadBlob()
        {
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
            CloudBlobContainer container = blobClient.GetContainerReference("redpluscontainer");

            CloudBlockBlob blockBlob = container.GetBlockBlobReference("B.txt");

            // 파일로 다운
            using (var fileStream = System.IO.File.OpenWrite(@"C:\Temp\Download\BB.txt"))
            {
                blockBlob.DownloadToStream(fileStream); // 다운로드
            }
        }

        private static void ListFiles()
        {
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
            CloudBlobContainer container = blobClient.GetContainerReference("redpluscontainer");
            foreach (IListBlobItem item in container.ListBlobs(null, false))
            {
                if (item.GetType() == typeof(CloudBlockBlob))
                {
                    CloudBlockBlob blob = (CloudBlockBlob)item;
                    Console.WriteLine("블록 블랍 리스트 : {0} : {1}", blob.Properties.Length, blob.Uri);
                }
                else if (item.GetType() == typeof(CloudPageBlob))
                {
                    CloudPageBlob page = (CloudPageBlob)item;
                    Console.WriteLine("페이지 블랍 리스트 : {0} : {1}", page.Properties.Length, page.Uri);                    
                }
                else if (item.GetType() == typeof(CloudBlobDirectory))
                {
                    CloudBlobDirectory dir = (CloudBlobDirectory)item;
                    Console.WriteLine("디렉터리 : {0}", dir.Uri);
                }
            }
        }

        private static void UploadFile()
        {
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
            CloudBlobContainer container = blobClient.GetContainerReference("redpluscontainer");

            CloudBlockBlob blockBlob = container.GetBlockBlobReference("B.txt");
            using (var fileStream = System.IO.File.OpenRead(@"C:\Temp\Upload\B.txt"))
            {
                blockBlob.UploadFromStream(fileStream); // 업로드 진행
            }
        }

        private static void CreateContainer()
        {
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
            CloudBlobContainer container = blobClient.GetContainerReference("redpluscontainer");
            container.CreateIfNotExists(); // 컨테이너 생성
            container.SetPermissions(
                new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });
        }
    }
}
 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트


관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 링크 : Windows Azure Website DNS 설정 - Administrator 2013-11-03 7378
현재글 코드샘플: BLOB 스토리지 사용 관련 코드 모음(컨테이너, 업로드, 다운로드, 삭제... - Administrator 2013-01-16 5080
다음글 Windows Azure Websites 사용 후기 6부: 사용자 도메인과 연결 - Administrator 2013-01-16 5475
관련 페이지 리스트
titlenamedateview
Windows Azure 강의실 시작하기 Administrator 2012-07-19 4323
Windows Azure 사용기 A to Z(1부): Windows Azure 평가판... Administrator 2012-12-04 6920
Windows Azure 사용기 A to Z(2부): Windows Azure에 Vi... Administrator 2012-12-05 6136
Windows Azure 사용기 A to Z(3부): VM에 웹 서버 구축 및 테스트... Administrator 2012-12-05 8011
Windows Azure Websites 사용 후기 1부: 웹사이트 만들기 Administrator 2013-01-16 5146
Windows Azure Websites 사용 후기 2부: ASP, PHP, ASP.... Administrator 2013-01-16 4722
Windows Azure Websites 사용 후기 3부: Web Deploy 방식으... Administrator 2013-01-16 8975
Windows Azure Websites 사용 후기 4부: Gallery에서 오픈소스... Administrator 2013-01-16 4414
Windows Azure Websites 사용 후기 5부: Create With Da... Administrator 2013-01-16 4784
Windows Azure Websites 사용 후기 6부: 사용자 도메인과 연결 Administrator 2013-01-16 5475
코드샘플: BLOB 스토리지 사용 관련 코드 모음(컨테이너, 업로드, 다운로드, 삭제... Administrator 2013-01-16 5080
링크 : Windows Azure Website DNS 설정 Administrator 2013-11-03 7378
링크: Azure 가상네트워크에 구성된 VM에 고정 IP 할당 Administrator 2014-03-13 7077
[링크] Azure VM(가상 머신) 만들기 Administrator 2015-04-02 6880
Azure App Service HOL Administrator 2017-11-24 5472
The system cannot find the file specified 에러 Administrator 2017-12-06 5437
 
 
 
손님 사용자 Anonymous (손님)
로그인 Home