public void Upload(Stream stream) { if (SynchronizationHelper.Synchronizing()) { Reinitialize(); if (Exists()) { return; } } IDictionary <string, string> metadata; lock (_lock) { var exists = ExistsInternal(); if (!exists) { _attributes = new BlobAttributes { Metadata = new Dictionary <string, string> { { BlobMetadataEnum.DateCreated.ToString(), DateTime.UtcNow.ToString() } } }; metadata = _attributes.Metadata; } else { SetMetadataAttributeInternal(BlobMetadataEnum.DateCreated, DateTime.UtcNow.ToString()); metadata = GetAttributeInternal(a => a.Metadata); } _attributes = _cloudBlobService.Upload(Path, metadata, stream); stream.Seek(0, SeekOrigin.Begin); _blobCacheService.Add(Path, stream, _attributes.LastModified); SetExists(true); _attributesFetched = true; } }
public void Append(byte[] content) { lock (_lock) { var data = GetInternal(); SetMetadataAttributeInternal(BlobMetadataEnum.LastWriteTime, DateTime.UtcNow.ToString()); using (var stream = new System.IO.MemoryStream()) { stream.Write(data, 0, data.Length); stream.Write(content, 0, content.Length); stream.Seek(0, SeekOrigin.Begin); _attributes = _cloudBlobService.Upload(Path, GetAttribute(a => a.Metadata), stream); _lastRefresh = DateTime.UtcNow; stream.Seek(0, SeekOrigin.Begin); _blobCacheService.Add(Path, stream, _attributes.LastModified); } } }