zoukankan      html  css  js  c++  java
  • Windows Azure Storage (25) Azure Append Blob

      《Windows Azure Platform 系列文章目录

      

      在笔者之前的文章中,我们介绍了Azure Blob 有两种:Block Blob和Page Blob。

      在这里笔者介绍Blob的第三种:Append Blob。

      概念:

      1.Append Blob概念类似于Block Blob,因为都是由块组成的

      2.单个Block Blob可以包含最多50000个块,每个块最大100MB,总大小大约4.75TB (100MB * 50000)。

      3.Append Blob针对追加操作进行了优化,特别适合与日志记录方案

      4.Append Blob可以包含最多50000个块,每个块最大4MB。总大小约为195GB

      5.Append Blob不支持修改和删除,每个对Append Blob的操作,都会追加到Append Blob的末尾。

      我们这里写一个.NET的Sample Code:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using Microsoft.WindowsAzure.Storage;
    using System.Configuration;
    using Microsoft.WindowsAzure.Storage.Blob;
    using System.IO;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["AzureStorageConnectionString"]);
                CloudBlobClient cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient();
                
                //Container Name必须为小写
                CloudBlobContainer cloudBlobContainer = cloudBlobClient.GetContainerReference("appendblobcontainer");
                cloudBlobContainer.CreateIfNotExists();
    
                CloudAppendBlob cloudAppendBlob = cloudBlobContainer.GetAppendBlobReference("helloworld.txt");
    
                //如果不存在,则创建该文件
                if(!cloudAppendBlob.Exists())
                { 
                    cloudAppendBlob.CreateOrReplace();
                }
    
                var tasks = new Task[100];
                for (int i = 0; i < 100; i++)
                {
                    var message = string.Format("Appending log number {0} to an append blob.
    ", i);
    
                    var bytes = Encoding.UTF8.GetBytes(message);
    
                    var stream = new MemoryStream(bytes);
    
                    tasks[i] = cloudAppendBlob.AppendBlockAsync(stream);
                }
    
                Task.WaitAll(tasks);
    
                string appendBlobContent = cloudAppendBlob.DownloadText();
            }
        }
    }

      如果我们执行代码两次,然后通过Azure Storage Explorer查看这个TXT文件,就可以看到文件被追加到Azure Append Blob里面了。

  • 相关阅读:
    47数据结构与算法分析之---查找的基本概念
    46数据结构与算法分析之---排序方法比较
    45数据结构与算法分析之---基数排序
    44数据结构与算法分析之---归并排序
    43数据结构与算法分析之---选择排序
    42数据结构与算法分析之---交换排序
    41数据结构与算法分析之---插入排序
    54数据结构与算法分析之---哈希查找
    40数据结构与算法分析之---排序的基本概念
    37数据结构与算法分析之---关键路径
  • 原文地址:https://www.cnblogs.com/threestone/p/7904706.html
Copyright © 2011-2022 走看看