Cloudservie将LocalStroage中的内容通过WAD自动上传到BLOB中

开发云服务程序,如果使用Local stroage存储我们临时生成的日志或者文件并将它们自动上传到BLOB中,可以通过WAD来实现,具体如下:

1.配置webrole,开启Local stroage功能:

2.修改wadcfgx文件,添加DataSources属性:

3.添加上传到local storage的代码:

Index.cshtml

@{
    ViewBag.Title = "Home Page";
}
<div class="jumbotron">
    <h1>ASP.NET</h1>
    <p class="lead">ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS and JavaScript.</p>
    <p><a href="http://asp.net" class="btn btn-primary btn-lg">Learn more &raquo;</a></p>
</div>
<div class="row">
    <div class="col-md-12">
        @using (Html.BeginForm("UploadZipFile", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
        {
            <div class="form-group">
                <label for="zipFile">Zip File</label>
                <input type="file" id="zipFile" name="zipFile">
            </div>
            <button type="submit" class="btn btn-default">Submit</button>
        }
    </div>
</div>

对应的HomeController.cs实现如下:

        public ActionResult UploadZipFile(HttpPostedFileBase zipFile)
        {
            var localResource = RoleEnvironment.GetLocalResource("ZipFiles");

            // Save zip file.
            var localZipFilePath = Path.Combine(localResource.RootPath, zipFile.FileName);
            zipFile.SaveAs(localZipFilePath);

            // Extract zip file to a random folder.
            var localExtractedPath = Path.Combine(localResource.RootPath, Guid.NewGuid().ToString());
            Directory.CreateDirectory(localExtractedPath);
            System.IO.Compression.ZipFile.ExtractToDirectory(localZipFilePath, localExtractedPath);

            // Upload everything to blob storage.
            foreach (var file in Directory.GetFiles(localExtractedPath, "*", SearchOption.AllDirectories))
            {
                // Upload to blob storage.
            }

            return RedirectToAction("Index");
        }

获取Local Storege的路径是:var localResource = RoleEnvironment.GetLocalResource("ZipFiles");

3.我在本地做了测试,通过代码上传到设置的Local Storage后,通过RDP登陆实例,会看到文件已经存在了,路径是C:\Resources\Directory\{部署ID}.WebRole1.ZipFiles

4.一旦指定的Local Storage有了内容,对应的存储账号会生成容器wad-testcustom(这也是自己设置的名称),当日志自动上传成功后,会看到对应的存储账号容器中,上传了之前测试的文件:

具体可以参考:http://blogs.msdn.com/b/davidhardin/archive/2011/03/31/configuring-diagnostics-wadcfg-to-capture-custom-log-files.aspx

关于Local Storage,就算不勾选"Clean on role recycle",在节点故障转移的时候,如果有的日志还没有及时存到BLOB中,我们还是会丢掉它们,具体可以参考:

http://justazure.com/microsoft-azure-cloud-services-part-3-service-package/

时间: 2024-10-13 09:10:15

Cloudservie将LocalStroage中的内容通过WAD自动上传到BLOB中的相关文章

java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容

1 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.File; 6 import java.io.FileInputStream; 7 import java.io.FileNotFoundException; 8 import java.io.FileOutputStream; 9 import java.io.IOException; 10 import java.io.

C#中在内容页获取其模板页中的变量,或者值

在CSDN的博文中看到了 muziduoxi 的文章:http://blog.csdn.net/muziduoxi/article/details/5386543 虽然里面提到的方法没有解决我的难题,但是我也是根据里面的方法想到现在所用的方法的,所以还是需要感谢  因为我要的变量初始化的时候是空的,如果使用muziduoxi的方法就只能读取到初始化时候的值,我做了个跟踪,发现有模板页的页面运行的时候是先运行本页的变量的定义→  到模板页的变量定义→ 到本页的Page_Load方法→ 到模板页的P

使用js 读取excl中的内容并写入到xml文件中

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

C#控制台基础 streamreader与streamwriter读取一个txt中的内容写到另外一个txt中

1 代码 1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace ConsoleApplication4 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 {

javascript如何随机输出数组中的内容

javascript如何随机输出数组中的内容: 有时候我们可能需要从数组中随机抽出一项内容,下面就通过一段代码实例介绍一下如何实现此效果. 代码如下: <script type="text/JavaScript"> var theArray=new Array(); theArray[0]="蚂蚁部落"; theArray[1]="蚂蚁部落一"; theArray[2]="蚂蚁部落二"; theArray[3]=&

以字符串str2中的内容为规范切割字符串

. char*strstrchar*str1,回来该方位的针.char*str2;求str2str1中初次呈现的方位.> 假如找不到则回来NULL; 则第一个参数要用NULL 8. char*strtokchar*str1,str1中只需遇到str2中存在字符就会切割.回来被切割出来的左面的那一部分.履行一次只切割一次. 假如要继续切割现已被切割过的字符串.char*str2;以字符串str2中的内容为规范切割字符串str1str2中可所以单个字符也可所以字符串.> 下面的比如中str2中有逗

用正则表达式替换指定标签中的内容

用正则表达式替换指定标签中的内容,也是在工作中遇到的就顺手记了下来 string sXML = "ABCDEFCSF<p>123123</p>KOPL";//现在我要去掉P标签中的内容,实现 ABCDEFCSFKOPL这样的效果. 引入:using System.Text.RegularExpressions; Regex rg = new Regex("<pict>.*</pict>"); sXML = rg.Rep

使用选择器在页面中插入内容

我不知道是否有其他人能看见我写的内容,由于我是一个渣渣,很多内容都不知道,所以将这些很简单的东西都记录下来,希望不小心点进来的大神们,能吐槽一下我,呃指点一下我.和我一样的小白们希望能相互学习,谢谢了. 在css中可以使用before伪元素选择器 after伪元素选择器在页面中插入内容,而插入的内容由content属性来定义     一:使用选择器来插入文字 使用选择器来插入文字,在插入的内容是文字时要在文字的两旁加入单引号或者双引号. 为了使插入的内容美观,可以在选择器中加入添加的内容的样式

CSS中隐藏内容的3种方法及属性值

在制作网页时,隐藏内容也是一种比较常用的手法,它的作用一般有:隐藏文本/图片.隐藏链接.隐藏超出范围的内容.隐藏弹出层.隐藏滚动条.清除错位和浮动等等. 使用CSS即可使以上提到的内容隐藏起来,几种隐藏内容的方法: 1.使用display:none来隐藏所有内容 display:none可以让网页中所有内容不显示,如代码.文字.链接.图片.div层,是推荐的内容隐藏方式. <div style="display:none;">我不占地儿,你看不见我:</div>