Example #1
0
        public Stream CreateFile(FileDescription fileDescription, SignOptions signOptions = null,
                                 SaveOptions saveOptions = null)
        {
            CloudBlobContainer container = GetContainerReference();
            string             name      = fileDescription.GUID.ToLower();
            CloudBlockBlob     blob      = container.GetBlockBlobReference(name);

            using (MemoryStream emptyStream = new MemoryStream())
            {
                blob.UploadFromStream(emptyStream);
            }

            try
            {
                CloudAppendBlob appendBlob = container.GetAppendBlobReference(name);
                appendBlob.CreateOrReplace();
                return(appendBlob.OpenWrite(true));
            }
            catch (Microsoft.WindowsAzure.Storage.StorageException exception)
            {
                // Azure Storage Emulator does not support append BLOBs,
                // so we emulate appending
                return(new CachingAzureStream(blob));
            }
        }