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)); } }