Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        public Stream DownloadingFile(string id)
        {
            IGridFSBucket bucket = GetGridFSBucket();

            ObjectId objectId = new ObjectId(id);

            GridFSDownloadStream <ObjectId> stream = bucket.OpenDownloadStream(objectId);

            return(stream);
        }
Exemplo n.º 3
0
        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
            }));
        }
Exemplo n.º 4
0
 public Stream OpenRead()
 {
     return(_bucket.OpenDownloadStream(_fileInfo.Id));
 }