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
总结