Azure 入门基础:File Storage

File Storage 是什么?

Azure File Storage的结构

https://.file.core.windows.net///

https://nickdemo.file.core.windows.net/demofiles/temp.txt

创建 File 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();

上传文件

// 获得根目录的引用。
CloudFileDirectory rootDir = share.GetRootDirectoryReference();
// 创建子目录 "web" 的引用。
CloudFileDirectory webDir = rootDir.GetDirectoryReference("web");
// 创建子目录 "web"。
webDir.CreateIfNotExists();
// 创建文件 "web.log" 的引用。
CloudFile cloudFile = webDir.GetFileReference("web.log");
string localFile = @"F:tempweb.log";

using (var fileStream = System.IO.File.OpenRead(localFile))
{
    //上传文件。
    cloudFile.UploadFromStream(fileStream);
}

复制文件

CloudFileShare share = GetFileShare(_currentShareName);
CloudFileDirectory rootDir = share.GetRootDirectoryReference();
CloudFileDirectory webDir = rootDir.GetDirectoryReference("web");

CloudFile cloudFile = webDir.GetFileReference("web.log");
if (cloudFile.Exists())
{
    //由 web.log 文件创建 web.copy.log 文件。
    CloudFile copyFile = webDir.GetFileReference("web.copy.log");
    copyFile.StartCopy(cloudFile);
}

设置 Share 的最大容量

// 指定最大容量为 1024, 单位是 GB。
share.Properties.Quota = 1024;
share.SetProperties();

把 Share 映射为本地机器的网络硬盘

cmdkey /add:.file.core.windows.net /user: /pass:
net use z: \.file.core.windows.netmylogs

net use z: \.file.core.windows.netmylogs

总结