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.\r\n", 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里面了。

 

转载于:https://www.cnblogs.com/threestone/p/7904706.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值