中国版Azure 文件服务
中国版Azure 文件服务预览版在2015年1月13日已经上线,文件存储使用标准SMB 2.1协议为应用程序提供共享存储。
当我们的虚拟机连接到文件共享后就可以像使用本地共享文件夹一样来读取和写入文件。在使用Azure 文件服务之前我们需要两步准备工作
第一步:创建新存储账户
Note: 只有在Azure 文件服务上线后所创建的存储账户才会有Azure 文件服务功能
1) 打开Azure门户网站:https://manage.windowsazure.cn/
2) 按下图点击 数据服务 -> 存储 -> 快速创建

3) 打开我们创建的存储的仪表盘,我们将看到我们文件服务的终结点

第二步:下载和安装Azure PowerShell cmdlets,关于如何安装和配置 Windows Azure PowerShell请阅读:http://www.windowsazure.cn/zh-cn/documentation/articles/install-configure-powershell/
Note: Azure PowerShell 0.8.5 及更高版本才支持Azure 文件服务
所有准备工作完成后我们就可以开始了,目前Azure门户网站不支持创建存储共享,我们还是需要以PowerShell的方式来创建。
1) 启动安装好的Windows Azure PowerShell,使用下面的命令来登录你的中国版Azure账户
Add-AzureAccount -Environment AzureChinaCloud
2) 创建上下文
$ctx=New-AzureStorageContext <帐户名称> <帐户密钥> -Environment AzureChinaCloud
Note: 我们使用的是中国版的Azure,所以需要添加Environment这个参数否则会出现下面的错误,从错误中可以很明显的看到终结点并非我们中国版Azure的后缀core.chinacloudapi.cn
New-AzureStorageShare: The remote name could not be resolved: '<account name>.file.core.windows.net'
3) 使用上下文创建文件共享
$s = New-AzureStorageShare <共享名称> -Context $ctx
4) 下面我们在虚拟机中配置共享目录
右击这台电脑 -> 点击映射网络驱动器

在文件夹输入框内输入 “\\<帐户名称>.file.core.chinacloudapi.cn\<共享名称>“,其中需要勾选“使用其他凭据连接“,因为我们使用的是存储账号和存储密钥的方式进行登陆。

然后在登录界面使用Azure存储的账号和密钥,之后我们就会在网络位置中看到我们的共享文件。

5) 如果文件共享不再需要了我们可以选择删除以避免不必要的费用,关于Azure 文件服务的收费请查看官网:http://www.windowsazure.cn/home/features/storage/#price ,我们可以通过下面的指令来执行删除操作:
a) 检索我们的Azure 文件服务下的所有共享文件
Get-AzureStorageShare -Context $ctx
b) 找到我们需要删除的共享文件名,执行删除操作
Remove-AzureStorageShare -Name <共享名称> -Context $ctx
至此我们就可以在Azure 虚拟机或者云服务中使用Azure 文件服务,但是需要注意的是映射网络驱动这种方式并不适用于本地环境,如果需要在本地环境中使用Azure 文件服务的话,我们就需要借助于File Storage API,下面的内容是演示如何使用.NET来实现企业内部环境使用Azure 文件服务,如果你使用其他语言你也可以尝试通过http请求的方式来实现,Rest API地址是: https://msdn.microsoft.com/zh-cn/library/azure/dn167006.aspx
1) 创建项目,安装Azure 存储NuGet包
a) 打开Visual Studio –> 选择File -> New Project –> Templates -> Visual C# -> 选择Console Application
b) 定义项目名为AzureFilesDemo
c) 右击项目选择” Manage NuGet Packages“,在搜索框内输入Azure Storage,然后安装Azure存储NuGet包。
2) 代码编写
a) 修改App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<connectionStrings>
<add name="StorageConnectionString" connectionString="BlobEndpoint=https:// <Account Name>.blob.core.chinacloudapi.cn/;QueueEndpoint=https:// <Account Name>.queue.core.chinacloudapi.cn/;TableEndpoint=https:// <Account Name>.table.core.chinacloudapi.cn/;FileEndpoint=https:// <Account Name>.file.core.chinacloudapi.cn/;AccountName=<Account Name>;AccountKey=<Account Key>"/> />
</connectionStrings>
</configuration>
b) 在Program.cs中引入命名空间,并编写代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.WindowsAzure;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;
using Microsoft.WindowsAzure.Storage.File;
using System.Configuration; namespace AzureFilesDemo
{
class Program
{
static void Main(string[] args)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString); CloudFileClient fileClient = storageAccount.CreateCloudFileClient();
CloudFileShare share = fileClient.GetShareReference("fileshares");
if (share.Exists())
{
CloudFileDirectory rootDir = share.GetRootDirectoryReference();
CloudFileDirectory sampleDir = rootDir.GetDirectoryReference("Resource");
sampleDir.CreateIfNotExists();
}
}
}
}
通过上述操作我们就可以在企业内部网络文件共享(”fileshares”)里创建一个名为”Resource”的文件夹,我在之前操作的虚拟机中也看到了这个文件夹如下图:

Note: Azure存储的连接字符串如下
DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1};EndpointSuffix=core.chinacloudapi.cn;
Azure File SDK还提供了我们很多的功能,如果有兴趣,大家可以去研究下。
中国版Azure 文件服务的更多相关文章
- [Azure] 使用 Visual Studio 2013 管理中国版 Azure 订阅
比较关心微软平台技术的朋友应该都知道,微软云服务(Microsoft Azure)以下简称Azure分为全球版和中国版,由于政府法规问题中国版的服务是由二十一世纪互联运营,整体来看中国版Azure和全 ...
- 中国版 Azure 现提供 Azure Traffic Manager
Stephen MaloneAzure网络 - DNS和 Traffic Manager高级项目经理 我们非常高兴地宣布,中国版 Azure中现已提供 Azure Traffic Manager.Az ...
- 中国版Azure支持那些版本号Linux
不在下述列表中的Linux表示尚未经过正式验证,并不意味着不能使用,客户能够通过自行上传镜像文件的方式使用其它Linux版本号,可是不保证是否遇到一些驱动或者兼容问题. 分发 版本号 上次验证时间 驱 ...
- Traffic Manager:Azure中国版 正式发布
我们很高兴地宣布Azure Traffic Manager 现已面向中国版Azure正式发布.此版本现已投入生产,由企业 SLA支持,随时可用于生产场景中. 借助Azure Traffic Ma ...
- 一起学微软Power BI系列-使用技巧(4)Power BI中国版企业环境搭建和帐号问题
千呼万唤的Power BI中国版终于落地了,相信12月初的微软技术大会之后已经铺天盖地的新闻出现了,不错,Power BI中国版真的来了,但还有些遗憾,国际版的一些重量级服务如power bi emb ...
- 中国区 Azure 和全球版 Azure:功能对比
由世纪互联运营的 Microsoft Azure(文中简称为中国区 Azure)是在中国大陆独立运营的公有云平台,与全球其他地区由微软运营的 Azure (文中简称全球版 Azure)服务在物理上和逻 ...
- 跨云应用部署第一步:使用IPSEC VPN连接AWS中国版和Windows Azure中国版
随着公有云的普及,越来越多的客户将关键应用迁移到云端.但是事实证明,没有哪家云服务提供商可以提供100%的SLA,无论是例行维护还是意外中断服务,对于客户的关键应用而言,都会受到不同程度的影响.此外, ...
- 自制Azure中国版“加血包”
Micrsoft Azure中国版的国际出口最近升级为电话线拨号模式,目测为10个用户共享一条56kb的电话线拨号链路.有图有真相: 中国的IT从业者,有三分之一的职业生涯时间是在跟网络斗智斗勇.这点 ...
- 使用VNET-to-VNET连接Microsoft Azure国际版和中国版
Microsoft Azure的VNET-to-VNET功能可以实现跨虚拟网络的VPN连接,通过VNET-to-VNET互联的两个虚拟网络可以在同一个订阅下或者隶属不同的订阅,而且可以跨数据中心.这实 ...
随机推荐
- Axure RP的基础使用
Axure RP是一个专业的快速原型设计工具. 在上面可以直接设计软件的原型而且不涉及代码,例如设计软件的流程和界面之类的.简单的说,就是可以在上面编写界面,让人看起来像一个完整的软件一样. 设置完成 ...
- HDFS案例
shell日志采集 需求说明 点击流日志每天都10T,在业务应用服务器上,需要准实时上传至数据仓库(Hadoop HDFS)上 需求分析 一般上传文件都是在凌晨24点操作,由于很多种类的业务数据都要在 ...
- leetcode606
/** * Definition for a binary tree node. * public class TreeNode { * public int val; * public TreeNo ...
- python:if 语句的使用方法
if-else类型: #if-else num = int(input("输入成绩!")) if num > 60: print ("及格") else: ...
- mfs权威指南
1. 我在性能测试中间遇到些问题,因为我时间有限,所以希望大家一起来测试解决,群策群力.有什么问题请大家及时指出来,因为我也处在一个不断摸索的阶段. 2. mfs不多做介绍,具体细节请参考本版mfs实 ...
- Realsense D430 python pointclound
来自:https://github.com/IntelRealSense/librealsense/issues/1231------------------------------ import p ...
- 自制模仿apache访问日志文件格式的php日志类
<?php // 访问日志写入类 @author 王伟 2011.12.14class Log{ //项目跟路径 private $root_path; //日 ...
- 面试题:jsp九大内置对象
我们常说的JSP有九大内置对象分别为:request.response.session.out.pagecontext.page.exception.application.config. 我们知道, ...
- $.post()参数及返回值
JQuery中的$.post()函数 先看一个例子:$.post("adduser.ashx", { "name": name, "sex" ...
- DataTable对象的操作问题
DataTable,DataRow,DataClomun三种对象都是引用类型. C#中值的传递方式分为值传递与引用传递. 1.复制DataTable对象 //以下做法是错误的,dt1和dt2引用的 ...