Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob、Queue、File 和 Table。
笔者在前文中介绍了 Blob Storage 的基本用法,本文将介绍 File Storage 的主要使用方法。
File Storage 是什么?Azure File Storage 是一个通过 Server Message Block (SMB) 协议提供云端文件共享的服务。通过 File Storage 共享的文件能够被加载为云端或本地主机的磁盘,应用程序可以通过文件 API 像访问本地文件一样访问这些文件。
下面是 File Storage 典型的应用场景:
1. 轻松迁移那些有磁盘读写操作的应用到云端。不用修改程序,只要通过 File Storage 加载相应的文件即可。
2. 存放共享的应用程序配置文件。
3. 存放日志等应用程序诊断数据。
4. 存放管理员的常用工具。
下图描述了 File Storage 的基本组织结构:
Azure Storage Account:
Storage Account 是用来管理 Azure Storage 的一个命名空间,主要用来控制存储数据的访问权限和计费。对 Blob、Queue、File 和 Table 这些 Azure 提供的存储服务的访问控制都是通过 Storage Account 来进行的,所以要想使用 File Storage,需要先创建你的 Storage Account。
Share:
Share 是管理共享文件的单位,任何要共享的文件和目录都必须属于某个 Share。一个 Storage Account 下的 Share 数量是不受限制的,每个 Share 中可以存放任何数量的文件。但是每个 Share 中最多能存放 5TB 的数据。
Directory:
与 Blob Storage 不同,File Storage 支持真正的文件目录。你可以根据需要来创建目录。
File:
File 是真正被共享的文件,每个文件最大 1TB。
URL format:
与 Blob Storage 相似,File Storage 中的每个文件都可以通过 URL 来访问。URL 的详细格式为:
https://<storage account>.file.core.windows.net/<share>/<directory/directories>/<filename>
下面是个更真实的例子:
https://nickdemo.file.core.windows.net/demofiles/temp.txt
如果您还不熟悉 Azure Storage Account 的使用,以及如何通过 WindowsAzure.Storage 库访问 Azure Storage,请参考前文《Azure Table storage 基本用法》中的介绍,这里就不重复了。
为了方便查看 C# 代码执行的结果,本文使用了 MS 发布的一个 Azure Storage 客户端工具:Microsoft Azure Storage Explorer,文中简称为 Storage Explorer。下面是 File Storage 的一个截图:
接下来我们通过 C# 代码来介绍如何操作 File Storage。
创建 File Share第一步我们先创建名为 "mylogs" 的 Share:
// CloudStorageAccount 类表示一个 Azure Storage Account,我们需要先创建它的实例,才能访问属于它的资源。 // 注意连接字符串中的xxx和yyy,分别对应Access keys中的Storage account name 和 key。 CloudStorageAccount storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=xxx;AccountKey=yyy"); // CloudFileClient 类是 Windows Azure File Service 客户端的逻辑表示,我们需要使用它来配置和执行对 File Storage 的操作。 CloudFileClient fileClient = storageAccount.CreateCloudFileClient(); // CloudFileShare 表示一个 File Share 对象。 CloudFileShare share = fileClient.GetShareReference(shareName); // 如果不存在就创建 File Share。 share.CreateIfNotExists();
运行上面的代码,然后打开 Storage Explorer,看到名为 "mylogs" 的 Share 已经创建了:
上传文件