public FileSystemBlobWriter( BlobId blobId, FileNameWithExtension fileName, String destinationFileName, IFileSystemBlobDescriptorStorage fileSystemBlobDescriptorStorage, ILogger logger) { BlobId = blobId; FileName = fileName; _logger = logger; _descriptor = new FileSystemBlobDescriptor() { BlobId = BlobId, FileNameWithExtension = FileName, Timestamp = DateTime.Now, ContentType = MimeTypes.GetMimeType(FileName) }; //Create a wrapper of the stream var originalStream = new FileStream(destinationFileName, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None); originalStream.SetLength(0); _writableStream = new FileSystemBlobStoreWritableStream(originalStream, this); _writableStream.StreamClosed += WritableStreamClosed; _fileSystemBlobDescriptorStorage = fileSystemBlobDescriptorStorage; }
public FileSystemBlobWriter( BlobId blobId, FileNameWithExtension fileName, String destinationFileName, IMongoCollection <FileSystemBlobDescriptor> blobDescriptorCollection, ILogger logger) { BlobId = blobId; FileName = fileName; _blobDescriptorCollection = blobDescriptorCollection; _logger = logger; _descriptor = new FileSystemBlobDescriptor() { BlobId = BlobId, FileNameWithExtension = FileName, Timestamp = DateTime.Now, ContentType = MimeTypes.GetMimeType(FileName) }; _destinationFileName = destinationFileName; _blobDescriptorCollection.Save(_descriptor, _descriptor.BlobId); //Create a wrapper of the stream var originalStream = new FileStream(destinationFileName, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None); originalStream.SetLength(0); _writableStream = new FileSystemBlobStoreWritableStream(originalStream, _descriptor, _blobDescriptorCollection, this); }
public void SaveDescriptor(FileSystemBlobDescriptor fileSystemBlobDescriptor) { if (fileSystemBlobDescriptor == null) { throw new ArgumentNullException(nameof(fileSystemBlobDescriptor)); } var fileName = _directoryManager.GetDescriptorFileNameFromBlobId(fileSystemBlobDescriptor.BlobId); File.WriteAllText(fileName, JsonConvert.SerializeObject(fileSystemBlobDescriptor)); }
public FileSystemBlobStoreWritableStream( Stream wrapped, FileSystemBlobDescriptor descriptor, IMongoCollection <FileSystemBlobDescriptor> blobDescriptorCollection, IBlobWriter writer) { _wrapped = wrapped; _descriptor = descriptor; _md5 = MD5.Create(); _blobDescriptorCollection = blobDescriptorCollection; _writer = writer; }
public void SaveDescriptor(FileSystemBlobDescriptor fileSystemBlobDescriptor) { _collection.Save(fileSystemBlobDescriptor, fileSystemBlobDescriptor.BlobId); }