public void Revision_set_should_have_expected_result()
        {
            var subject = new GridFSDownloadByNameOptions();

            subject.Revision = 2;

            subject.Revision.Should().Be(2);
        }
示例#2
0
        public void Revision_set_should_have_expected_result()
        {
            var subject = new GridFSDownloadByNameOptions();

            subject.Revision = 2;

            subject.Revision.Should().Be(2);
        }
        public byte[] DownloadAsBytesByName(string fileName, GridFSDownloadByNameOptions options = null)
        {
            MongoClient client = GetClient(m_connectionStr);
            var         db     = client.GetDatabase(DatabaseName);
            var         bucket = new GridFSBucket(db, BucksOptions);

            return(bucket.DownloadAsBytesByName(fileName, options));
        }
        public void Revision_get_should_return_expected_result()
        {
            var subject = new GridFSDownloadByNameOptions { Revision = 2 };

            var result = subject.Revision;

            result.Should().Be(2);
        }
        public void DownloadToStreamByName(string fileName, Stream source, GridFSDownloadByNameOptions options = null)
        {
            MongoClient client = GetClient(m_connectionStr);
            var         db     = client.GetDatabase(DatabaseName);
            var         bucket = new GridFSBucket(db, BucksOptions);

            bucket.DownloadToStreamByName(fileName, source, options);
        }
示例#6
0
        public void Revision_get_should_return_expected_result()
        {
            var subject = new GridFSDownloadByNameOptions {
                Revision = 2
            };

            var result = subject.Revision;

            result.Should().Be(2);
        }
示例#7
0
        /// <summary>
        /// 根据文件名下载文件
        /// </summary>
        /// <param name="filepath">保存文件的完整路径</param>
        /// <param name="fileName">文件名(不含扩展名)</param>
        /// <param name="collectionName">mongodb集合名</param>
        public void DownLoadFileByName(string filepath, string fileName, string collectionName)
        {
            FileStream fileStream = new FileStream(filepath, FileMode.Append);
            var        bucket     = new GridFSBucket(this.MongoDatabase, new GridFSBucketOptions
            {
                BucketName     = collectionName,
                ChunkSizeBytes = 358400,
                WriteConcern   = WriteConcern.WMajority,
                ReadPreference = ReadPreference.Secondary
            });
            var options = new GridFSDownloadByNameOptions
            {
                Revision = 0
            };

            bucket.DownloadToStreamByName(fileName, fileStream, options);
            fileStream.Close();
        }
        private void ParseOptions(BsonDocument options)
        {
            foreach (var option in options.Elements)
            {
                _options = _options ?? new GridFSDownloadByNameOptions();
                switch (option.Name)
                {
                case "checkMD5":
                    _options.CheckMD5 = option.Value.ToBoolean();
                    break;

                case "revision":
                    _options.Revision = option.Value.ToInt32();
                    break;

                default:
                    throw new ArgumentException(string.Format("Invalid option name: {0}.", option.Name));
                }
            }
        }
        private void ParseOptions(BsonDocument options)
        {
            foreach (var option in options.Elements)
            {
                _options = _options ?? new GridFSDownloadByNameOptions();
                switch (option.Name)
                {
                    case "checkMD5":
                        _options.CheckMD5 = option.Value.ToBoolean();
                        break;

                    case "revision":
                        _options.Revision = option.Value.ToInt32();
                        break;

                    default:
                        throw new ArgumentException(string.Format("Invalid option name: {0}.", option.Name));
                }
            }
        }
示例#10
0
        public void DownLoad()
        {
            using (FileStream fs = new FileStream(@"D:\gridfsDownload.jpg", FileMode.Create))
            {
                mongoDBService.DownloadToStream(new ObjectId("5a61a113379d582f14e750a3"), fs);
            }

            var b = mongoDBService.DownloadAsBytes(new ObjectId("5a61b103379d5829f89d0688"));

            Console.WriteLine(Encoding.Default.GetString(b));

            //异步方法
            var bs = mongoDBService.DownloadAsBytesAsync(new ObjectId("5a61b103379d5829f89d0688"));

            bs.Wait();
            Console.WriteLine("异步的方法,获得的字符串为:" + Encoding.Default.GetString(bs.Result));


            //通过文件名下载
            //当多个文件的文件名相同时,可以通过指定版本来选择下载哪一个文件,默认的是-1(最新上传的版本)
            //0,原始版
            //1,第一版
            //2,第二版
            //.....
            //-1,最新版
            //-2,次新版
            //var bN = mongoDBService.DownloadAsBytesByName("gridfsTest");
            //Console.WriteLine("通过文件名,获得的字符串为:" + Encoding.Default.GetString(bN));

            //指定版本
            var options = new GridFSDownloadByNameOptions
            {
                Revision = 0
            };

            using (FileStream fs = new FileStream(@"D:\gridfsDownloadByName.jpg", FileMode.Create))
            {
                mongoDBService.DownloadToStreamByName("gridfsTest", fs, options);
            }
        }
示例#11
0
        public void default_constructor_should_return_expected_result()
        {
            var result = new GridFSDownloadByNameOptions();

            result.Revision.Should().Be(-1);
        }
示例#12
0
        /// <summary>
        /// Downloads a file stored in GridFS and returns it as a byte array.
        /// </summary>
        /// <param name="filename"></param>
        /// <param name="options"></param>
        /// <returns></returns>
        public Task <byte[]> DownloadAsBytesByNameAsync(string filename, GridFSDownloadByNameOptions options = null)
        {
            var bucket = new GridFSBucket(base.GetDatabase(), BucketOptions);

            return(bucket.DownloadAsBytesByNameAsync(filename, options));
        }
示例#13
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));
        }
        public void default_constructor_should_return_expected_result()
        {
            var result = new GridFSDownloadByNameOptions();

            result.Revision.Should().Be(-1);
        }
示例#15
0
        /// <summary>
        /// 下载文件
        /// </summary>
        /// <param name="host"></param>
        /// <param name="fileName"></param>
        /// <param name="destination"></param>
        /// <param name="options"></param>
        public static Stream DownloadFileToStreamByName(MongodbHost host, string fileName, GridFSDownloadByNameOptions options = null)
        {
            Stream destination = new MemoryStream();
            var    bucket      = MongodbManager <GridFSBucket> .GetGridFSBucket(host);

            bucket.DownloadToStreamByName(fileName, destination, options);
            return(destination);
        }