Domanda

Dopo aver guardato a questo tutorial su blob: Channel 9 , stavo pensando di utilizzare un contenitore blob per salvare un gruppo di tweets (memorizzare il jSON di ogni tweet che è). Idealmente mi piacerebbe creare un riferimento blob per ogni ora del giorno, e aggiungere nuovi tweet a questo blob come vengono in. Il problema è che il metodo UploadText (string) sovrascrive il contenuto esistente del blob, c'è un facile modo per aggiungere testo a un blob esistente?

Grazie!

        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)
È stato utile?

Soluzione

Pagina Blobs sono la strada da percorrere per questa esigenza. (Vs blob di blocco)

È possibile creare il blob con un'operazione Blob Put: http://msdn.microsoft.com/en-us/library/dd179451.aspx

Quindi è possibile aggiungere "pagine" usando un operazione page Put: http://msdn.microsoft.com/en-us/library/ee691975.aspx

Pagina Blobs modificherà la pagina (s) aggiunto con una put immediatamente, in modo più accurato imitando i file system tradizionali.

Blocco macchie stanno per aspettarsi una costruzione più ridig, e richiedono un due fasi submit / commit di costruzione. Una volta compilato, è necessario sovrascrivere per ammend al blob. Block macchie sono stati progettati per lo streaming di contenuti statici (sciolto definizione), vs come un negozio di lettura / scrittura. Pagina Blobs sono stati aggiunti per supportare questi scenari.

Altri suggerimenti

Azure supporta ora Append Blobs . Quando si crea un nuovo blob, è necessario definire come un Append Block. Non si può aggiungere al blob di blocco esistenti.

Ecco alcune semplici righe di codice che è possibile utilizzare.

Aggiungi:

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

Leggi:

appendBlob.DownloadText()

Technet contiene un buon tutorial sull'argomento. Anche il documentazione ufficiale Azure ora include aiuto per l'utilizzo di Append Blob.

È possibile provare a ottenere l'elenco dei blocchi impegnati attraverso il CloudBlockBlob.DownloadBlockList () metodo e quindi aggiungere il nuovo contenuto tramite CloudBlockBlob.PutBlock () .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top