1. 前言

本文是根据Azure文档与本人做了验证之后写的。

如果想下载微软官网的demo, 请前往github https://github.com/Azure-Samples/storage-blob-dotnet-getting-started

2. 介绍

Azure Blob是存储很大空间的服务,能允许存储与访问通过http或https。Blob是有公有与私有的属性。公有是所有人可以看到的链接,私有是要通过秘钥等才可以访问到资源。

blob可以存储:

1)images或document指向一个文件夹

2)保存文件

3)视频与音频

4)存储数据的备份和恢复、灾难恢复和归档

5)由一个本地存储数据进行分析或azure托管服务

3. 概念

1)Container容器:

一个容器可以包含很多个blobs,一个账号可以包含很多个containers容器。请注意容器名字要为小写。

2)Blob:

blob是一个文件的属性与大小。Azure存储的blobs包含三种类型:block blobs、page blobs、append blobs。

Block blobs:存储的是text与二进制文件,例如documents与媒体类型文件。

Append blobs:是类似于Block blobs,但是它是做了优化的操作,所以它是用于logging的操作。一个简单的block blob或者 append blob 可以包含5000个blocks,最大每个文件4MB,整个大小最大为194GB(4MB*50000)

Page blobs:最大为1TB,是可以读写的操作。

4. 代码开始

1)创建存储账户

关于创建存储的步骤,请参照

http://www.cnblogs.com/alunchen/p/5765700.html

中的第3大点

2)导入包,在包管理器上面分别输入下面的命令:

Install-Package WindowsAzure.Storage

Install-Package Microsoft.WindowsAzure.ConfigurationManager

2)建立连接

              string connStr = "DefaultEndpointsProtocol=https;AccountName=ceslighttest;AccountKey=cp3JXYFXu6XhV18oVQW2q7urHOhxhm9Guwl6uElTBWd9nxxxxxxxxxxxxxx;EndpointSuffix=core.chinacloudapi.cn";
//建立连接
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connStr);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

3)创建容器

             // 创建容器,是否存在
CloudBlobContainer container = blobClient.GetContainerReference("testuimageblobcontainercompanyname");
container.CreateIfNotExists();

4)设置权限

容器默认是private的,意思是要指定key才能下载图片。如果要把图片设置成对外哪里都可以下载,请设置成public

                //容器默认是private的,意思是要指定key才能下载图片。如果要把图片设置成对外哪里都可以下载,请设置成public
container.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });

5)创建文件,并上传本地文件

             // 创建文件名,如果有相同的文件名,则替换
CloudBlockBlob blockBlob = container.GetBlockBlobReference("23.jpg"); //上传本地文件
using (var fileStream = System.IO.File.OpenRead(@"E:\23.jpg"))
{
blockBlob.UploadFromStream(fileStream);
}

6)show全部在容器里面的blobs文件

               // 输出文件大小与路径uri
foreach (IListBlobItem item in container.ListBlobs(null, false))
{
if (item.GetType() == typeof(CloudBlockBlob))
{
CloudBlockBlob blob = (CloudBlockBlob)item; r += string.Format("Block blob of length {0}: {1}", blob.Properties.Length, blob.Uri); }
else if (item.GetType() == typeof(CloudPageBlob))
{
CloudPageBlob pageBlob = (CloudPageBlob)item; r += string.Format("Page blob of length {0}: {1}", pageBlob.Properties.Length, pageBlob.Uri); }
else if (item.GetType() == typeof(CloudBlobDirectory))
{
CloudBlobDirectory directory = (CloudBlobDirectory)item; r += string.Format("Directory: {0}", directory.Uri);
}
}

7)删除blobs

               CloudBlockBlob blockBlob = container.GetBlockBlobReference("23.jpg");

                //删除blob
blockBlob.Delete();

C# Azure 存储-Blob的更多相关文章

  1. azure跨域问题(访问azure存储账户数据,blob)

    访问azure存储账户数据报错:405错误 解决方案 打开访问的存储账户--->CORS--->Blob服务 全部填写*就可以了,点击“保存”即可. iframe就可以展示blob中的pd ...

  2. 【Azure 存储服务】代码版 Azure Storage Blob 生成 SAS (Shared Access Signature: 共享访问签名)

    问题描述 在使用Azure存储服务,为了有效的保护Storage的Access Keys.可以使用另一种授权方式访问资源(Shared Access Signature: 共享访问签名), 它的好处可 ...

  3. 【Azure 存储服务】Java Azure Storage SDK V12使用Endpoint连接Blob Service遇见 The Azure Storage endpoint url is malformed

    问题描述 使用Azure Storage Account的共享访问签名(Share Access Signature) 生成的终结点,连接时遇见  The Azure Storage endpoint ...

  4. Windows Azure Storage (19) 再谈Azure Block Blob和Page Blob

    <Windows Azure Platform 系列文章目录> 请读者在参考本文之前,预习相关背景知识:Windows Azure Storage (1) Windows Azure St ...

  5. 玩转Windows Azure存储服务——网盘

    存储服务是除了计算服务之外最重要的云服务之一.说到云存储,大家可以想到很多产品,例如:AWS S3,Google Drive,百度云盘...而在Windows Azure中,存储服务却是在默默无闻的工 ...

  6. 解读 Windows Azure 存储服务的账单 – 带宽、事务数量,以及容量

    经常有人询问我们,如何估算 Windows Azure 存储服务的成本,以便了解如何更好地构建一个经济有效的应用程序.本文我们将从带宽.事务数量,以及容量这三种存储成本的角度探讨这一问题. 在使用 W ...

  7. 关于Azure存储账户中存储虚拟机VHD文件的注意事项

     Joy Qiao from MSFT  Thu, Mar 12 2015 3:16 PM 我们在使用Azure时经常都会在Azure存储账户中放一些文件,包括Azure虚机的VHD文件也都是放在存储 ...

  8. 了解 Windows Azure 存储计费 – 带宽、事务和容量

     我们收到关于如何估算 Windows Azure存储成本,以便了解如何更好地构建一个经济有效的应用程序的问题.在本文中,我们将从带宽.事务和容量这三种存储成本的角度探讨这一问题. 使用 Wind ...

  9. 了解 Windows Azure 存储的可伸缩性、可用性、持久性和计费

    借助 Windows Azure存储,应用程序开发者及其应用程序和用户可以在云中使用可用性更高.持久性更长.可伸缩性更强的海量存储.开发者可以构建能随时随地高效访问数据的服务,在所需的时间段内存储任意 ...

随机推荐

  1. Linux学习笔记(9)-守护进程

    明天学这个!! ---------------------------------------------------------- 守护进程(Daemon)是运行在后台的一种特殊进程.它独立于控制终 ...

  2. PHP环境搭建

    1.安装wampserver,安装成功后浏览器中输入:localhost可以打开下面的页面 2.想配置本机IP打开文件的话,单击wampserver-Apache-httped.conf,打开文件,修 ...

  3. 网络神器Greasemonkey(油猴子)使用方法简介+脚本分享【转载】

    推荐下,觉得这个方法有用, 今天艾薇百科来介绍一下功能强大的Greasemonkey,俗称"油猴子",Greasemonkey可以自由定制网页,实现你想要的各种功能.堪称" ...

  4. LeetCode 344. Reverse String

    Problem: Write a function that takes a string as input and returns the string reversed. Example: Giv ...

  5. 迎战Meta 2,微软新专利有望解决Hololens视场角野窄问题

    上周,微软HoloLens的竞争对手AR眼镜Meta 2正式发货,微软是该急了.我们知道Meta 2不仅在价格上比HoloLens便宜,而且在性能上也不弱,Meta2的可视角度达到90度,比HoloL ...

  6. 数论 - Moon Game

    Fat brother and Maze are playing a kind of special (hentai) game in the clearly blue sky which we ca ...

  7. clientX .offsetX .screenX x 的区别

    clientX 设置或获取鼠标指针位置相对于当前窗口的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条. clientY 设置或获取鼠标指针位置相对于当前窗口的 y 坐标,其中客户区域不包括窗口自 ...

  8. 懒加载lazyload

    什么是懒加载 懒加载就是当你做滚动到页面某个位置,然后再显示当前位置的图片,这样做可以减少页面请求. 懒加载:主要目的是作为服务器前端的优化,减少请求数或延迟请求数,一些图片非常多的网站中非常有用,在 ...

  9. java cookie 工具类

    package com.xxx.xxx.xxx.xxx; import java.net.URLDecoder; import java.net.URLEncoder; import javax.se ...

  10. Object-C与Swift混编

    1.在Object-C项目中调用Swift 1.1.创建一个Object-C project(项目名例如:YYDemo) 如下图 1.2.创建一个Swift Class,如下图 这里会显示是否需要创建 ...