Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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);
        }