中國版Azure 文件服務

中國版Azure 文件服務預覽版在2015年1月13日已經上線,文件存儲使用標準SMB 2.1協議爲應用程序提供共享存儲。shell

當咱們的虛擬機鏈接到文件共享後就能夠像使用本地共享文件夾同樣來讀取和寫入文件。在使用Azure 文件服務以前咱們須要兩步準備工做windows

第一步:建立新存儲帳戶api

Note: 只有在Azure 文件服務上線後所建立的存儲帳戶纔會有Azure 文件服務功能網絡

1)       打開Azure門戶網站:https://manage.windowsazure.cn/ide

2)       按下圖點擊 數據服務 -> 存儲 -> 快速建立網站

                       

3)       打開咱們建立的存儲的儀表盤,咱們將看到咱們文件服務的終結點spa

 

第二步:下載和安裝Azure PowerShell cmdlets,關於如何安裝和配置 Windows Azure PowerShell請閱讀:http://www.windowsazure.cn/zh-cn/documentation/articles/install-configure-powershell/.net

Note:  Azure PowerShell 0.8.5 及更高版本才支持Azure 文件服務3d

 

全部準備工做完成後咱們就能夠開始了,目前Azure門戶網站不支持建立存儲共享,咱們仍是須要以PowerShell的方式來建立。code

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>
View Code

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();
            }
        }
    }
}
View Code

經過上述操做咱們就能夠在企業內部網絡文件共享(」fileshares」)裏建立一個名爲」Resource」的文件夾,我在以前操做的虛擬機中也看到了這個文件夾以下圖:

 

 Note:  Azure存儲的鏈接字符串以下

DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1};EndpointSuffix=core.chinacloudapi.cn;

 Azure File SDK還提供了咱們不少的功能,若是有興趣,你們能夠去研究下。

相關文章
相關標籤/搜索