Windows Azure(四-2):云端的文件系统(Blob Storage)
- 博客分类:
- 技术杂绘
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_/
发表评论
-
通过ACL和.net Framework实施对Windows对象访问的管理
2012-01-20 01:53 832通过ACL和.net Framework实施对Windows对 ... -
在android 2.3 AVD 模拟器上安装 google market 安卓市场
2012-01-20 01:53 667在android 2.3 AVD 模拟器上安装 google ... -
在android 2.3 AVD 模拟器上安装 google market 安卓市场
2012-01-20 01:53 789在android 2.3 AVD 模拟器上安装 google ... -
Silverlight在嵌入式平台Windows ce中的应用
2012-01-20 01:53 1172Silverlight在嵌入式平台Wi ... -
永不放弃 never give up 我的校园
2012-01-19 09:40 649永不放弃 never give up 我 ... -
孩子们,老师现在说的,你们能懂吗
2012-01-19 09:40 513孩子们,老师现在说的, ... -
恶作剧之吻
2012-01-19 09:40 680恶作剧之吻 2012年01月14日 长大是一种忧伤的颜色 ... -
应聘教师时的常见问题2012-1-1
2012-01-19 09:39 806应聘教师时的常见问题2 ... -
【iphone】开发者传授APP开发,审核,发布流程!
2012-01-17 02:15 1789【iphone】开发者传授APP ... -
基于FLEX技术的应用架构设计及其应用
2012-01-17 02:15 753基于FLEX技术的应用架构 ... -
多线程
2012-01-17 02:15 693多线程 2011年05月15日 ... -
七雄争霸服务端详细安装说明【更新WIN系统架设教程】
2012-01-17 02:15 2103七雄争霸服务端详细安装说明【更新WIN系统架设教程】 201 ... -
利用HaRET移植android - 老知识收藏
2012-01-17 02:14 766利用HaRET移植android - 老 ... -
基于C#的Socket开发快速入门
2012-01-15 21:51 771基于C#的Socket开发快速 ... -
C++ socket编程(tcp udp)
2012-01-15 21:51 752C++ socket编程(tcp udp) 2011 ... -
一个封装的C++ Socket类
2012-01-15 21:51 988一个封装的C++ Socket类 2011年06月03日 ... -
C#托管Socket的实现方法
2012-01-15 21:51 716C#托管Socket的实现方法 2009年10月23日 ... -
C# Socket编程笔记
2012-01-15 21:51 542C# Socket编程笔记 2010年03月14日 看到 ...
相关推荐
微软云读写共享文件所需依赖
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