Добавить текст в Blob в Azure - PullRequest
       6

Добавить текст в Blob в Azure

4 голосов
/ 26 сентября 2010

Посмотрев этот урок по BLOB-объектам: канал 9 , я подумал об использовании контейнера BLOB-объектов для сохранения группы твитов (для хранения json каждого твита, который есть).В идеале я хотел бы создать ссылку на большой двоичный объект для каждого часа дня и добавлять новые твиты в этот большой двоичный объект по мере их поступления. Проблема в том, что метод UploadText (string) перезаписывает существующее содержимое большого двоичного объекта.способ добавить текст в существующий BLOB-объект?

Спасибо!

        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)

Ответы [ 3 ]

8 голосов
/ 11 декабря 2015

Azure теперь поддерживает Присоединение BLOB-объектов . Когда вы создаете новый BLOB-объект, вы должны определить его как блок добавления. Вы не можете добавить к существующим блочным объектам.

Вот простой код, который вы можете использовать.

Append:

CloudAppendBlob appendBlob = container.GetAppendBlobReference("myblob.txt")
appendBlob.AppendText("new line");

Чтение:

appendBlob.DownloadText()

Technet содержит хороший учебник по этому вопросу. Также официальная документация Azure теперь включает справку по использованию приложения BLOB.

4 голосов
/ 27 сентября 2010

Страницы BLOB-объектов - путь для этой потребности. (против блочных блобов)

Вы создаете BLOB-объект с помощью операции Put Blob: http://msdn.microsoft.com/en-us/library/dd179451.aspx

Затем вы можете добавить «страницы» с помощью операции «Поместить страницу»: http://msdn.microsoft.com/en-us/library/ee691975.aspx

Страницы BLOB-объектов немедленно исправят добавленные страницы путом, более точно имитируя традиционные файловые системы.

Блоковые объекты ожидают более жесткую конструкцию и требуют двухфазного построения отправки / принятия. После компиляции вы должны переписать, чтобы внести изменения в BLOB-объект. Блоковые BLOB-объекты предназначены для потоковой передачи статического (произвольного определения) содержимого по сравнению с хранилищем для чтения / записи. Для поддержки этих сценариев были добавлены BLOB-объекты страниц.

1 голос
/ 27 сентября 2010

Вы можете попробовать получить список зафиксированных блоков с помощью метода CloudBlockBlob.DownloadBlockList () , а затем добавить новый контент с помощью CloudBlockBlob.PutBlock () .

...