Windows Azure(四-2):云端的文件系统(Blob Storage)
2011年06月29日
前一篇《Windows Azure(四-1):Worker Role(对应传统服务器BackGroud 程序) 》
序:文件系统是操作系统的核心功能模块,用于数据文件的管理与存储;在云端当然也存在管理文件的情形,我们如何操作云端的呢?通过REST API来进行对文件的操作,具体查看Blob 服务 API。 准备
请确保你从Windows Azure 平台下载下载并安装了最新的Windows Azure开发工具。本教学使用Visual Studio 2010作为开发工具。
步骤一:创建解决方案和项目
由于我们要在本地模拟环境下测试Blob Storage,首先,请确保Storage Emulator已经启动。我们可以找到管理器的进程手动启动或者让Visual Studio 2010帮助我们启动他(运行一个项目即可)。
右击工具栏中Windows Azure模拟器的图标,选择"Show Storage Emulator UI"。弹出如下图所示的窗口:
我们要关注的是Service management中Blob所在的一行。要确保Status为Running。 确认完毕后启动Visual Studio 2010,并且新建一个Console项目。 步骤二:添加SDK程序集引用
因为 微软提供Microsoft.WindowsAzure.StorageClient类来帮助RSet API调用,发送 REST请求。所以引用它的dll即可:
1. 确保:项目属性页里确认项目的Target framework的值是.NET Framework 4或.NET Framework 3.5。(注意哦,一定设置,默认不是这个设置!!)
2. 然后添加对C:/Program Files/Windows Azure SDK/v1.4/ref/Microsoft.WindowsAzure.StorageClient. dll的引用。(该路径为SDK默认安装路径,如果你不能在这个路径中找到Microsoft.WindowsAzure.StorageClient.dll请从SDK安装路径中寻找。)s
步骤三:添加代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.WindowsAzure.StorageClient; using Microsoft.WindowsAzure; namespace WT.Cloud.BlobStorageAPITest { class Program { static void Main(string[] args) { // 创建Blob 客户端 var account = CloudStorageAccount.DevelopmentStorageAccount; CloudBlobClient blobclient = account.CreateCloudBlobClient(); // 检查container是否被创建,如果没有,创建container CloudBlobContainer container = blobclient.GetContainerReference("helloworldcontai ner"); container.CreateIfNotExist(); // 新建一个CloudBlob,内容为"Hello World" CloudBlob cloudBlob = container.GetBlobReference("helloworldFile"); cloudBlob.UploadText("wt,love azure program"); // 读取云端内容 Console.WriteLine("读取云端内容:"); string cloudContent = cloudBlob.DownloadText(); // 删除blob bool succeed = cloudBlob.DeleteIfExists(); } } } 运行:
真实的云端操作
步骤四:观察并分析代码
步骤三中的代码中,首先我们通过CloudStorageAccount.DevelopmentStorageAccount来说明我们使用的本地的Development Storage自带账户而不是真正的云端存储服务账户。(如果要用真实账户可以使用
//DefaultEndpointsProtocol=https可以改成DefaultEndpointsProtocol=http表示用HTTP而不是HTTPS
CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=[用户名];AccountKey=[密码]");
来实例化对象)然后通过该账户类来实例化一个Blob客户端类。这两步是使用SDK中StorageClient程序集来调用Blob Storage服务的必要步骤。接下来的代码逻辑可以分为四部分: 检查container是否被创建,如果没有,创建container
新建一个blob,内容为"Hello World"
读取并显示blob内容 删除blob
第一部分,我们得到一个container的引用。就作用来说我们大致上可以把container类比成是桌面操作系统中的文件夹。我们在得到引用后检查该container是否存在。注意如果是用的真实账号,当调用CreateIfNotExist()方法后就有REST请求发出了。
后面几部分代码非常简单。我们可以看到SDK提供给我们的API是十分简单好用的。
步骤五:运行程序
按F5调试程序。如果一切正常你将会看到输出的消息如下图所示:
步骤六:创建新的Storage Account 使用支持SilverLight的浏览器打开https://windows.azure.com/。(注意:您可能需要输入您的Live ID和密码来通过身份验证) 点击New Storage Account:
在Create a New Storage Account对话框里,在标记为Choose a subscription 的下拉框里选择一个订阅选项:
在标记为Enter a URL的文本框里输入一个URL前缀来指定它的URL:
选择区域:
最后点击Create按钮完成创建。等待创建过程完成后,我们可以看到系统给我们分配了3个URL,分别是Blob URL、Table URL和Queue URL,以及刚才我们自己输入的用户名。
然后点击属性栏里的Primary access key或者Secondary access key可以看到这些key的值。点击View Storage Access Keys对话框里的Copy to Clipboard按钮就可以拷贝到粘贴板里了。
步骤七:使用Storage Account运行程序 将代码里的:
CloudStorageAccount.DevelopmentStorageAccount
替换成:
CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=[用户名];AccountKey=[密码]")
根据刚才创建的Storage Account填入用户名和密码。最后运行程序的结果是一样的。但是这次用的是Windows Azure上的Blob Storage作为存储服务。
出现问题
问题1
"Warning 3 The referenced assembly "Microsoft.WindowsAzure.StorageClient, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" could not be resolved because it has a dependency on "System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which is not in the currently targeted framework ".NETFramework,Version=v4.0,Profile=Client". Please remove references to assemblies not in the targeted framework or consider retargeting your project. WT.Cloud.BlobStorageAPITest"
解决:项目版本默认是.NET platform version is set to 4.0 Client Profile ,运行便会产生此错误。项目属性页里确认项目的Target framework的值是.NET Framework 4或.NET Framework 3.5
源: http://blogs.msdn.com/b/azchina/archive/tags/windo ws+azure_6551e8955965665bfb7c1752_/
发表评论
-
Windows Mobile 平台EDB 数据库的应用与开发
2012-01-20 09:30 719Windows Mobile 平台EDB 数据 ... -
PHP on Windows Azure 入门教学系列(3) ――在Windows Azure中部署Wordpress
2012-01-20 09:30 620PHP on Windows Azure 入门教学系列(3) ... -
windows驱动编程学习顺序?
2012-01-20 09:30 580windows驱动编程学习顺序? 2010年11月19日 ... -
Windows Azure 上的托管服务CDN
2012-01-20 09:30 527Windows Azure 上的托管服 ... -
中国哲学史(先秦部分)-------简答
2012-01-19 14:32 740中国哲学史(先秦部分)-------简答 2012年01月0 ... -
夏商与西周》第四十二章之昭王伐楚(二)
2012-01-19 14:32 591夏商与西周》第四十二章之昭王伐楚(二) 2012年01月08 ... -
龄欣哔日志蹈诒刺陕疥赤
2012-01-19 14:32 672龄欣哔日志蹈诒刺陕疥赤 2012年01月09日 ... -
古玩辨伪之青铜器
2012-01-19 14:31 513古玩辨伪之青铜器 2012年01月09日 ... -
日本法定假日简介
2012-01-19 14:31 546日本法定假日简介 2012 ... -
【转】 AS3.0 中root和parent的用法
2012-01-17 04:19 676【转】 AS3.0 中root和parent的用法 2011 ... -
JavaScript之Global对象
2012-01-17 04:19 537JavaScript之Global对象 2011年08月24 ... -
JavaScript中的 try...catch和异常处理(转)
2012-01-17 04:19 604JavaScript中的 try...catch和异常处理(转 ... -
JavaScript的函数和异常处理
2012-01-17 04:19 599JavaScript的函数和异常处 ... -
JS的try..catch..finally
2012-01-17 04:19 673JS的try..catch..finally 2011年09 ... -
海洋随笔《三》
2012-01-16 03:08 562海洋随笔《三》 2011年12月07日 天再次进入黑暗, ... -
这文章看得我心里酸溜溜的,送给每一个爱老公的女人…
2012-01-16 03:08 747这文章看得我心里酸溜溜的,送给每一个爱老公的女人… 2011 ... -
《 つ 谢谢你勾引我老公1。文/唐丰有》
2012-01-16 03:08 635《 つ 谢谢你勾引我老公1。文/唐丰有》 20 ... -
最性感的地方
2012-01-16 03:08 596最性感的地方 2011年12 ... -
[耀湾/微亚细亚] 夜降り萃梦乡 FIN.
2012-01-16 03:08 732[耀湾/微亚细亚] 夜降り萃梦乡 FIN. 2009年02月 ...
相关推荐
微软云读写共享文件所需依赖
Laravel开发-laravel-azure-blob-storage 用于Azure Blob存储的Laravel包装。使用来自https://github.com/beberlei的Azure库
$ npm install react-native-azure-blob-storage --save 大多是自动安装 $ react-native link react-native-azure-blob-storage 用法 import React , { Component } from 'react' ; import { Button , StyleSheet ...
flysystem-天蓝色-blob-存储 关于 扩展 。 安装 $ composer require blue32a/flysystem-azure-blob-storage
适用于Go的Azure存储Blob SDK Microsoft Go的Microsoft Azure...storage-blob-go/azblob Dep:将github.com/Azure/azure-storage-blob-go添加到Gopkg.toml中: [[constraint]] version = "0.3.0" name = "github.com/A
azure-blob-to-s3 将文件从Azure Blob存储批量复制到Amazon S3 完全流式传输仅根据需要列出Azure Blob存储中的文件以流方式将Azure二进制数据上传到S3 跳过不必要的上载(具有匹配密钥和Content-Length已在S3上) 重...
天蓝色块式存储适用于AWS开发工具包的小型模块包装程序,可让您轻松使用Azure。... log )} ) 或者,如果您想在本地使用文件系统var azure = require ( 'azure-block-blob-storage' ) ( 'my-bucket' , { type : 'fs' /
page_type 语言 产品 描述 urlFragment 样本 javascript 节点js ...git clone https://github.com/Azure-Samples/azure-sdk-for-js-storage-blob-stream-nodejs.git 然后,切换到适当的文件夹: c
Kubernetes的Azure磁盘CSI驱动程序 关于 该驱动程序允许Kubernetes使用卷,csi插件名称: disk.csi.azure.com 项目状态:GA 容器映像和Kubernetes兼容性 驱动程式版本 图片 1.16+ 主分支 mcr.microsoft....
laravel-azure-storage 用于Laravel存储API的Microsoft Azure Blob存储集成。 这是的自定义驱动程序,它本身是在之上。 它使用Flysystem自己的Azure blob存储适配器,因此不能轻易添加超出此范围的功能-实际上,...
connection-string : ${{ secrets.AZURE_STORAGE_CONNECTION_STRING }} name : my-artifact - run : cat my-artifact 下载到特定目录: steps : - uses : actions/checkout@v1 - uses : fixpoint/azblob-...
连接会话天蓝色斑点连接... npm install azure-storage --save *5. 在下面的示例中添加代码。 var express = require ( 'express' ) ;var path = require ( 'path' ) ;var favicon = require ( 'serve-favicon' ) ;var
azure-c-shared-utility使用cmake配置构建文件。 建立 使用递归选项克隆azure-c-shared-utility : git clone --recursive https://github.com/Azure/azure-c-shared-utility.git 在azure-c-shared-utility下创建...
Azure存储Blob的MATLAB接口 这是一个MATLAB:registered:接口,可连接到Windows Azure:trade_mark:存储Blob(WASB)服务。 这是一个低级接口,如果MATLAB中提供的高级接口支持您的要求,建议使用该接口,有关更多详细...
参加该考试的考生应具备学科专业知识,可以实施、管理和监控组织的 Microsoft Azure 环境,包括: 虚拟网络 存储 计算 标识 安全性 调控 Azure 管理员通常在一个较大团队中致力于实现组织的云基础结构。 还要与其他...
git clone https://github.com/Azure-Samples/storage-blob-upload-from-webapp-node.git 转到storage-blob-upload-from-webapp-node文件夹: cd storage-blob-upload-from-webapp-node 通过npm安装依赖项: npm...
provider-upload-azure-storage# ornpm install strapi-provider-upload-azure-storage用法Strapi版本> = 3.0.0 在Strapi 3.0.0的稳定发行版中,配置已移至JavaScript文件。 官方文档。 要启用提供程序,请在./...
此存储库是分支,其基础Azure API库从microsoft/azure-storage更改为microsoft/azure-storage-file 。 原始驱动程序通过平面二进制对象结构支持Azure blob存储。 该驱动程序支持Azure文件存储,其中包括目录功能。 ...
jsreport-azure-storage jsreport扩展添加了对在Azure存储中存储Blob的支持 某些jsreport扩展要求使用Blob存储来存储二进制对象。 此实现将这些对象(如输出报告)存储在经济高效的天蓝色斑点存储中。 请参阅Blob...
普罗米修斯-天蓝色斑点出口商...name : ' <azure> 'azure_blob_storage_account_key : ' <azure> 'containers : ['cassandra-backup', 'postgresql-backup']指标指标将在$ curl -s localhost:9358# HELP azure_blob_l