MongoDB C++ gridfs worked example
使用libmongoc,参考:http://mongoc.org/libmongoc/current/mongoc_gridfs_t.html
#include <mongoc.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h> class MongoGridFS {
public:
MongoGridFS(const char* db);
~MongoGridFS(); void saveFile(const char* input_file_path, const char* filename);
private:
mongoc_gridfs_t *gridfs;
mongoc_client_t *client;
}; MongoGridFS::MongoGridFS(const char* db) {
assert(db != NULL);
mongoc_init ();
/* connect to localhost client */
client = mongoc_client_new ("mongodb://127.0.0.1:27017?appname=gridfs-example");
assert (client);
mongoc_client_set_error_api (client, ); /* grab a gridfs handle in test prefixed by fs */
bson_error_t error;
gridfs = mongoc_client_get_gridfs (client, db, "fs", &error);
assert (gridfs);
} void MongoGridFS::saveFile(const char* input_file_path, const char* filename) {
assert(input_file_path != NULL && filename != NULL);
mongoc_stream_t *stream = mongoc_stream_file_new_for_path (input_file_path, O_RDONLY, );
assert (stream); mongoc_gridfs_file_opt_t opt = {};
opt.filename = filename; /* the driver generates a file_id for you */
mongoc_gridfs_file_t *file = mongoc_gridfs_create_file_from_stream (gridfs, stream, &opt);
assert (file); mongoc_gridfs_file_save (file);
mongoc_gridfs_file_destroy (file);
} MongoGridFS::~MongoGridFS() {
mongoc_gridfs_destroy (gridfs);
mongoc_client_destroy (client);
mongoc_cleanup ();
} int
main (int argc, char *argv[])
{
MongoGridFS gridfs("test2gridfs");
gridfs.saveFile("test.py", "test.py");
return ;
}
MongoDB C++ gridfs worked example的更多相关文章
- 实验mongodb使用gridfs存放一个大文件
		1.启动mongoDB 2.使用gridfs存放大文件 3.观察fs.chunks和fs.files的情况 命令 db.fs.chunks.find()查到的是一些二进制文件: 
- MongoDB 的 GridFS 详细分析
		GridFS简介 GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件. http://www.mongodb.org/display/DOCS/GridFS http://www.m ... 
- .NET MongoDB Driver GridFS 2.2原理及使用示例
		一.API解读 1 GridFSBucketOptions 1)public string BucketName { get; set; } 获取或设置bucket名称 2)public int Ch ... 
- MongoDB基于GridFS管理文件
		前言 GridFS是一种将大型文件存储在MongoDB的文件规范: 数据库支持以BSON格式保存二进制对象. 但是MongoDB中BSON对象最大不能超过4MB. GridFS 规范提供了一种透明的机 ... 
- MongoDB学习-->Gridfs分布式存储&DBRef关联查询
		mongodb自带的一个分布式文件系统 fs.files _id filename md5 size uploaddate contenttype metadata {"user_id&qu ... 
- MongoDB GridFS 对图片进行增删改
		using MongoDB.Bson; using MongoDB.Driver; using MongoDB.Driver.Builders; using MongoDB.Driver.GridFS ... 
- ExpressJS File Uploading – GridFS – MongoDB
		n this blog post we will see how to handle multipart data/file uploading with expressjs. Save files ... 
- c#通过操作mongodb gridfs实现文件的数据库存储
		@(编程) 源码 using MongoDB.Driver; using MongoDB.Driver.GridFS; using System.IO; namespace Wisdombud.Mon ... 
- MongoDB GridFS 存储文件
		使用MongoDB的GridFS方式. CSDN: https://blog.csdn.net/qq_32657967/article/details/81534259官方文档: https://do ... 
随机推荐
- msp430项目编程33
			msp430中项目---简易示波器系统 1.电路工作原理 2.代码(显示部分) 3.代码(功能实现) 4.项目总结 
- HDu1241 DFS搜索
			#include<iostream> #include<cstring> using namespace std; int a[105][105]; int d[8][2]={ ... 
- Java Socket应用
			Java Socket(套接字)通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字"向网络发出请求或者应答网络请求. 
- DFS与BFS对比
			前面已经说过了深搜和广搜了,是不是有点还不是很好的分清他们?(其实分不分的请都没大有关系) 下面我们来看一看广搜与深搜的区别吧. 算法步骤上的区别 深度优先遍历图算法步骤: 1.访问顶点v 2,.依次 ... 
- Maven项目配置外部依赖(本地依赖)
			加入有一些公共jar包只限于公司内部使用,不能暴露在外部时,有如下的方案: 1.搭建私有远程仓库(nexus) 2.使用http.ftp.共享地址,github地址等(主要是通过maven-deplo ... 
- iOS App 项目:会员卡管理系统设计方案
			1.需求描写叙述 店主须要管理自己的会员信息和充值卡信息以及消费纪录 店主觉得购买电脑和外设成本太高,并且店面没有地方容纳这些设备 店主希望通过手机来完毕这些功能.但尽量不产生流量.对网络要求较低 店 ... 
- IntelliJ IDEA 默认需要进行maven的设置
			IntelliJ IDEA 默认需要进行maven的设置 需要指定maven的地址,指定settings.xml的地址: 可以默认的在user/.m2/下面放一个settings.xml文件: 学习: ... 
- sql 导入数据库 出现乱码问题 解决办法  设置  --default-character-set=utf8
			mysql -u root -p --default-character-set=utf8 use dbname source /root/newsdata.sql 
- 查询mysql字段名和字段注释
			select COLUMN_NAME,column_comment from INFORMATION_SCHEMA.Columns where table_name='表名' and table_sc ... 
- (转) Universal-Image-Loader使用大全(史上最屌)
			转载自http://blog.csdn.net/zenjj11/article/details/38728481 项目介绍: Android上最让人头疼的莫过于从网络获取图片.显示.回收,不论什么一个 ... 
