Windows 将文本附加到Azure中的Blob
在阅读了关于blob的教程之后,我考虑使用blob容器来保存一组tweet(存储每个tweet的json)。理想情况下,我想为一天中的每一小时创建一个blob引用,并在blob出现时向其添加新的tweet。问题是UploadText(string)方法会覆盖blob的现有内容,有没有一种简单的方法可以将文本附加到现有blob 谢谢Windows 将文本附加到Azure中的Blob,windows,azure,azure-storage,blobs,Windows,Azure,Azure Storage,Blobs,在阅读了关于blob的教程之后,我考虑使用blob容器来保存一组tweet(存储每个tweet的json)。理想情况下,我想为一天中的每一小时创建一个blob引用,并在blob出现时向其添加新的tweet。问题是UploadText(string)方法会覆盖blob的现有内容,有没有一种简单的方法可以将文本附加到现有blob 谢谢 fun (json:string) -> let account = CloudStorageAcc
fun (json:string) ->
let account = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("DataConnectionString"))
let blobs = account.CreateCloudBlobClient();
let tempBlob = blobs.GetBlobReference("tweets/2010-9-26/17/201092617.txt")
tempBlob.Properties.ContentType <- "text/plain"
tempBlob.UploadText(json)
fun(json:string)->
let account=CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue(“DataConnectionString”))
让blobs=account.CreateCloudBlobClient();
让tempBlob=blobs.GetBlobReference(“tweets/2010-9-26/17/201092617.txt”)
tempBlob.Properties.ContentType您可以尝试通过CloudBlockBlob.DownloadBlockList()方法获取提交块的列表,然后通过CloudBlockBlob.PutBlock()页面blob追加新内容。(与块blob相比)
使用Put blob操作创建blob:
然后,您可以使用Put page操作添加“页面”:
页面BLOB将立即修改添加了put的页面,更准确地模仿传统文件系统
块blob需要一个更具ridig的构造,并且需要一个两阶段的提交/提交构造。编译后,您必须覆盖到blob。块blob是为静态(松散定义)内容流而设计的,而不是作为读/写存储。添加页面blob是为了支持这些场景。Azure现在支持这些场景。创建新blob时,必须将其定义为附加块。不能附加到现有块Blob
下面是一些您可以使用的简单代码
追加:
CloudAppendBlob appendBlob = container.GetAppendBlobReference("myblob.txt")
appendBlob.AppendText("new line");
appendBlob.DownloadText()
阅读:
CloudAppendBlob appendBlob = container.GetAppendBlobReference("myblob.txt")
appendBlob.AppendText("new line");
appendBlob.DownloadText()
关于这个问题。现在还包括使用Append Blob的帮助。@tishon感谢您的帮助。我将尝试一下页面blob页面和块blob之间的选择实际上更多的是优化大块&顺序读取(块blob)或小块以及随机访问读写(页面blob)。您确实可以将块附加到块blob,并重新提交更新的块列表(您还可以删除、插入和替换)。这个答案随着附加blob的引入而过时。改为使用Append Blob。似乎有必要在“AppendText()”之前调用“appendBlob.CreateOrReplace()”AppendBlock API是否公开给Azure Powershell?