public async Task <MemoryStream> downTileData(string fileName)
        {
            GridFSFileInfo fileInfo;
            var            filter = Builders <GridFSFileInfo> .Filter.Eq(x => x.Filename, fileName);

            var options = new GridFSFindOptions
            {
                Limit = 1
            };

            using (var cursor = gridFSBucket.Find(filter, options))
            {
                fileInfo = cursor.ToList().FirstOrDefault();
            }
            if (fileInfo.Id != null)
            {
                GridFSDownloadStream gridFSDownloadStream = gridFSBucket.OpenDownloadStream(fileInfo.Id);
            }

            MemoryStream destination = new MemoryStream();

            destination.Seek(0, SeekOrigin.Begin);
            await gridFSBucket.DownloadToStreamByNameAsync(fileName, destination);

            if (destination != null)
            {
                return(destination);
            }
            else
            {
                return(null);
            }
        }
Esempio n. 2
0
        public async Task DownloadToStreamByNameAsync(string gfsname, Stream source, MediaTypeEnum bucketName)
        {
            var bucket = new GridFSBucket(_mongoDatabase, new GridFSBucketOptions
            {
                BucketName = bucketName.ToString()
            });

            await bucket.DownloadToStreamByNameAsync(gfsname, source);
        }
        public async Task <MemoryStream> DownloadFile(string fileName, string databaseName)
        {
            var database = client.GetDatabase(databaseName);
            var fs       = new GridFSBucket(database);
            var ms       = new MemoryStream();
            await fs.DownloadToStreamByNameAsync(fileName, ms);

            ms.Position = 0;
            return(ms);
        }
        public static async Task DownloadFileToStreamByName()
        {
            var database = DatabaseHelper.GetDatabaseReference("localhost", "file_store");

            IGridFSBucket bucket = new GridFSBucket(database);

            var fileName = "c:\\temp\\mystream2.pdf";

            using (Stream fileStream = new FileStream(fileName, FileMode.CreateNew, FileAccess.Write))
            {
                await bucket.DownloadToStreamByNameAsync("sample2.pdf", fileStream);

                fileStream.Close();
            }
        }
Esempio n. 5
0
        public static async Task <Stream> GetAsync(string filename)
        {
            var db         = DbConnection.db;
            var collection = db.GetCollection <GridFSFileInfo>("fs.files");

            var builder        = Builders <GridFSFileInfo> .Filter;
            var filter         = builder.Eq(i => i.Filename, filename);
            var fileCollection = await collection.FindAsync <GridFSFileInfo>(filter);

            var file = fileCollection.FirstOrDefault();

            if (file == null)
            {
                return(null);
            }
            var bucket = new GridFSBucket(db);

            var stream = new MemoryStream();
            await bucket.DownloadToStreamByNameAsync(filename, stream);

            stream.Position = 0;
            return(stream);
        }
Esempio n. 6
0
        /// <summary>
        /// Downloads a file stored in GridFS and writes the contents to a stream.
        /// </summary>
        /// <param name="filename"></param>
        /// <param name="destination"></param>
        /// <param name="options"></param>
        /// <returns></returns>
        public Task DownloadToStreamAsync(string filename, Stream destination, GridFSDownloadByNameOptions options = null)
        {
            var bucket = new GridFSBucket(base.GetDatabase(), BucketOptions);

            return(bucket.DownloadToStreamByNameAsync(filename, destination, options));
        }