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 ...
随机推荐
- 让Mac OS X专用高速移动硬盘在Linux下也能被读写
MacBook Pro以及iMac等设备都具备雷电接口和USB 3.0接口,配合使用Mac OS X格式化的专用高速移动硬盘读写数据都非常快.那么这种硬盘可以在Linux下被读写吗?其实,Mac OS ...
- android layout
android的视图分为两类,一类是布局,另一个类是控件 一.LinearLayout(线性布局) 最常用布局之一,线性布局的特性是每添加一个控件默认会在上个控件的下面占一行. <LinearL ...
- Codeforces 486D Valid Sets (树型DP)
题目链接 Valid Sets 题目要求我们在一棵树上计符合条件的连通块的个数. 满足该连通块内,点的权值极差小于等于d 树的点数满足 n <= 2000 首先我们先不管这个限制条件,也就是先考 ...
- digits
Digits(digits.cpp/c/pas)Description给一个关于x的多项式,并给定一个x,求该多项式在带入该x时的值最后k位数字.Input第一行两个整数n.k:之后的 行,每行两个数 ...
- Spring 详解(一)------- AOP前序
目录 1. AOP 简介 2. 示例需求 3. 解决方法一:使用静态代理 4. 解决方法二:使用动态代理 1. AOP 简介 AOP(Aspect Oriented Programming),通常 ...
- argument to nsmutablearray method addobject cannot be nil 警告
You cannot add nil to an NSMutableArray, and you will raise an exception if you try to. There's NSNu ...
- linux命令stat,查看文件详细信息
可以查看文件的各类具体信息:文件权限的数字形式0664:uid.gid的权限的数字形式等 更多用法参考stat --help lsattr test.sh 查看文件的其他属性:只读属性.只可以追加写属 ...
- flask如何设置模板语言Jinjia?如何查看路由视图函数映射?
首先flask的模板和静态文件命名必须是确定的templates和static pycharm的模板语言设置
- nextSibling和previousSibling
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- UVA 11246 - K-Multiple Free set(数论推理)
UVA 11246 - K-Multiple Free set 题目链接 题意:一个{1..n}的集合.求一个子集合.使得元素个数最多,而且不存在有两个元素x1 * k = x2,求出最多的元素个数是 ...