您准备迁移到azure平台上的程序有大量的类似于File.()…的操作?

不用着急,MS发布的 Microsoft.WindowsAzure.CloudDrive 提供的 API,即可方便的切换到Blob中。

假设您有一个FileUpload的控件,您可能有这样的代码:

File.WriteAllBytes(string.Format("{0}\\{1}", Server.MapPath("~\Data"), fileName), this.FileUpload1.FileBytes);

切换到 Blob?  使用 CloudDrive 提供的API,只需做少量的修改即可。

引用 Microsoft.WindowsAzure.CloudDrive

1. 修改 WebRole

public class WebRole : RoleEntryPoint{public static string DriveLetter { get; private set; }CloudDrive myCloudDrive;public override bool OnStart(){CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) =>{configSetter(RoleEnvironment.GetConfigurationSettingValue(configName));RoleEnvironment.Changed += (sender, arg) =>{if (arg.Changes.OfType<RoleEnvironmentConfigurationSettingChange>().Any((change) => (change.ConfigurationSettingName == configName))){if (!configSetter(RoleEnvironment.GetConfigurationSettingValue(configName))){RoleEnvironment.RequestRecycle();}}};});RoleEnvironment.Changing += RoleEnvironmentChanging;return base.OnStart();}private void RoleEnvironmentChanging(object sender, RoleEnvironmentChangingEventArgs e){// If a configuration setting is changingif (e.Changes.Any(change => change is RoleEnvironmentConfigurationSettingChange)){// Set e.Cancel to true to restart this role instancee.Cancel = true;}}public override void OnStop(){myCloudDrive.Unmount();base.OnStop();}public override void Run(){string containerName = "drives";string blobName = "mydrive.vhd";CloudStorageAccount storageAccount = CloudStorageAccount.FromConfigurationSetting("DiagnosticsConnectionString");
            LocalResource localCache = RoleEnvironment.GetLocalResource("InstanceDriveCache");CloudDrive.InitializeCache(localCache.RootPath, localCache.MaximumSizeInMegabytes);CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();blobClient.GetContainerReference(containerName).CreateIfNotExist();// create Cloud Drive myCloudDrive = storageAccount.CreateCloudDrive(blobClient.GetContainerReference(containerName).GetPageBlobReference(blobName).Uri.ToString());try{myCloudDrive.Create(32);}catch (CloudDriveException ex){}DriveLetter = myCloudDrive.Mount(0, DriveMountOptions.Force);base.Run();}}
2. ServiceDefinition 中增加了缓存的设置[可选]

<ServiceDefinition name="CloudWebDemo" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
  <WebRole name="WebRole1">
    <InputEndpoints>
      <InputEndpoint name="HttpIn" protocol="http" port="80" />
    </InputEndpoints>
    <ConfigurationSettings>
      <Setting name="DiagnosticsConnectionString" />
    </ConfigurationSettings>
    <LocalResources>
      <LocalStorage name="InstanceDriveCache" cleanOnRoleRecycle="false" sizeInMB="100" />
    </LocalResources>
  </WebRole>
</ServiceDefinition>

3. 修改文件操作的代码

 File.WriteAllBytes(string.Format("{0}\\{1}",  , fileName), this.FileUpload1.FileBytes);

转载于:https://www.cnblogs.com/ginohuo/archive/2010/05/03/1726509.html

Windows azure 上将Legcay IO操作轻松切换到Blob相关推荐

  1. day10-协程遇到IO操作自动切换

    一.概述 感觉确实用着比generator还简单了呢,但好像还没有解决一个问题,就是遇到IO操作,自动切换,对不对?所以我们接下来就说说如何遇到IO就切换,不得不提到一个模块Gevent. Geven ...

  2. ubuntu windows双系统默认启动项轻松切换

    一般ubuntu+windows双系统的默认启动项都是-----ubuntu,并且固定不变.这样对于经常使用windows的人会很不方便,本文将让系统默认启动项可以轻松切换,并顺便减少启动默认系统的等 ...

  3. python之协程与IO操作

    协程 协程,又称微线程,纤程.英文名Coroutine. 协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用. 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B ...

  4. Windows Azure虚拟机概览

    Windows Azure自从2012预览版开始添加了新的虚拟机功能.作为这个新功能的一部分,Windows Azure发布了一个新版本的Windows Azure管理门户,这个门户在原有的基础上增加 ...

  5. Windows Azure Storage (1) Windows Azure Storage Service存储服务

    <Windows Azure Platform 系列文章目录> 如果读者使用的是国内由世纪互联运维的Azure China服务,请参考笔者的博文Azure China (4) 管理Azur ...

  6. 云计算 第四章 微软云计算 Windows Azure

    文章目录 第四章 微软云计算 Windows Azure 4.1 微软云计算平台 1.传统的企业和用户在开发和部署自己的应用程序主要有两种方式 2.微软的云计算技术 3.Windows Azure平台 ...

  7. Windows Azure公有云服务相关方案

    http://www.cnblogs.com/sennly/p/4139675.html 1.公有云平台服务简介 Windows Azure 是一个灵活而开放的云平台,通过该平台,您可以在数据中心快速 ...

  8. 现实世界的 Windows Azure:HRG将应用程序扩展到移动设备,削减80 %的启动成本

    作为现实世界 Windows Azure 系列的一部分,我们联系了Hogg Robinson Group (HRG)的技术和产品开发主任Paul Saggar, 了解关于如何如何在Windows Az ...

  9. 现宣布Windows Azure中SQL数据同步的增强功能

    我们很高兴宣布SQL数据同步服务迎来了更新,现可以在所有Windows Azure数据中心中操作.过去的两次更新(六月.八月)除了为预览版带来一般可靠性的改进外,还带来了如下的增强功能: ·      ...

最新文章

  1. Oracle Row cache lock图解
  2. Java程序员应该了解的10个设计原则
  3. SIGGRAPH 2021丨OPPO与南大提出双流网络:仅输入单张图片,就能“看”出物体材质...
  4. python e_pythone函数基础(8)内置函数学习
  5. 7-33 出生年 (15 分)
  6. 如何在 Mac 上进行屏幕录制?
  7. php嗅探视频地址,用PHP嗅探youku视频的真实地址!
  8. ***测试执行标准(Penetration Testing Execution Standard:PTES)
  9. C语言从键盘输入1605,山东理工大学ACM平台题答案关于C语言 1605 Balloon Comes!
  10. Linux下进行rar文件解压和压缩
  11. CPU设计——RISC-V指令集
  12. OpenCV开发笔记(六十四):红胖子8分钟带你深入了解SURF特征点(图文并茂+浅显易懂+程序源码)
  13. 流程图,梳理基本流和备选流,编写测试用例
  14. 制作商品详情页面案例
  15. ISO、快门、光圈、曝光
  16. 在CentOS7上源码安装MongoDB 3.2.7
  17. Python:K折交叉验证,将数据集分成训练集与测试集
  18. 常用的数字正则表达式(含小数)
  19. visio拉动线条总是保持直线状态
  20. vscode同时编辑多行,插入递增数字

热门文章

  1. 脉冲神经网络_【强基固本】脉冲神经网络(SNN)
  2. iOS 性能优化-启动优化、main函数之前优化-二进制重排
  3. web前端学习day_03:JavaScript:如何使用/ 语法/ 方法/ NaN/ js对象分类/ BOM浏览器相关/ 事件/ DOM文档对象模型
  4. Xamarin.Forms的ActivityIndicator和ProgressBar比较
  5. Visual Studio提示Bonjour backend初始化失败
  6. 域控制器升级的先决条件验证失败新建_快应用开发工具升级v1.4.0
  7. linux内核更新/修补程序,Ubuntu 18.04.3 LTS无需重启即可轻松修补Linux内核
  8. webserver获取http请求方的服务器ip_光大科技基础设施团队剖析HTTP协议
  9. webview键盘自适应_苹果笔记本显示器键盘专利曝光:单按键可重新配置
  10. AAAI第二届“AI诺奖”出炉,百万美元奖金颁给批判黑箱、推广可解释AI的杜克大学女教授...