public async Task <FileModel> GetFile(string id, FileTypeEnum fileType) { try { using (var stream = _gridFS.OpenDownloadStream(new ObjectId(id))) { FileModel model = new FileModel(stream.FileInfo.Filename); if (fileType != (FileTypeEnum)stream.FileInfo.Metadata["type"].AsInt32) { return(null); } using (MemoryStream ms = new MemoryStream()) { await stream.CopyToAsync(ms); model.Data = ms.ToArray(); } stream.Close(); return(model); } } catch { return(null); } }
public Stream DownloadingFile(string id) { IGridFSBucket bucket = GetGridFSBucket(); ObjectId objectId = new ObjectId(id); GridFSDownloadStream <ObjectId> stream = bucket.OpenDownloadStream(objectId); return(stream); }
public Stream GetReader(Uri uri) { var id = GetId(uri); if (id.IsEmpty()) { throw new FileNotFoundException($"{uri.OriginalString} is not present in database."); } return(_fileBucket.OpenDownloadStream(id, new GridFSDownloadOptions { Seekable = true })); }
public Stream OpenRead() { return(_bucket.OpenDownloadStream(_fileInfo.Id)); }