使用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, 2);/* 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, 0);assert (stream);mongoc_gridfs_file_opt_t opt = {0};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 0;
}

转载于:https://www.cnblogs.com/bonelee/p/6568211.html

MongoDB C++ gridfs worked example相关推荐

  1. MongoDB:GridFS删除方法删除存储桶中的所有文件

    不久前,我们遇到了MongoDB GridFS的奇怪行为,这使我为MongoDB Java驱动程序创建了一个故障 单 . 今天,我在浏览器书签中找到了指向故障单的链接. 该票证目前尚未解决,因此我认为 ...

  2. MongoDB之GridFS

    [MongoDB是什么?] MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间 ...

  3. 实验mongodb使用gridfs存放一个大文件

    1.启动mongoDB 2.使用gridfs存放大文件 3.观察fs.chunks和fs.files的情况 命令 db.fs.chunks.find()查到的是一些二进制文件: 转载于:https:/ ...

  4. Spring保存文件到MongoDB之GridFS支持

    为什么80%的码农都做不了架构师?>>>    问题 Spring上传来的文件,怎么保存到MongoDB中去类,这里暂时不考虑其他方案来保存文件,如文件系统,FTP等等之类的.假设, ...

  5. MongoDB(四)——GridFS

    GridFS MongoDB的一个重要子模块,可基于MongoDB来持久存储文件,并且支持分布式存储和读取. 持久存储:对应瞬时数据如内存,指保存到数据库中,能持久保存. 分布式存储:将数据分散地存储 ...

  6. java mongodb gridfs_MongoDB-4 GridFS 文件存储

    1. 配置config spring: data: mongodb: uri: mongodb://username:password@192.168.2.72:27017 database: myd ...

  7. .NET MongoDB Driver GridFS 2.2原理及使用示例

    一.API解读 1 GridFSBucketOptions 1)public string BucketName { get; set; } 获取或设置bucket名称 2)public int Ch ...

  8. 浅尝辄止MongoDB:GridFS

    一.为什么使用GridFS GridFS是MongoDB的一个子模块,使用GridFS可以基于MongoDB来持久存储文件,并且支持分布式应用(文件分布存储和读取).作为MongoDB中二进制数据存储 ...

  9. 第10周 Mongodb的GridFS与分片

    GridFS GridFS是一种将大型文件存储在MongoDB的文件规范. GridFS 规范提供了一种透明的机制,可以将一个大文件分割成为多个较小的文档.这将容许我们有效的保存大的文件对象,特别对于 ...

最新文章

  1. keepalived打造mysql主主高可用
  2. react更改路由入参_react路由传参方式
  3. django中settings中文解释
  4. UnityShader5:基本内置变量
  5. 电脑蓝屏后你该做的几桩要事
  6. python多线程怎么样_python如何使用多线程?
  7. 机器学习(一)绪论、算法总结
  8. Linux之Shell编程学习总结
  9. 2022-2027年中国民办高校行业市场调研及未来发展趋势预测报告
  10. 论文写作笔记1:医学跨计算机期刊介绍
  11. 计算机系统系统时间不准,windows7系统时间不对怎么办_windows7系统时间不准如何恢复-win7之家...
  12. 8K播放网络全终端播放器H5播放器网页直播/点播播放器EasyPlayer和vlc播放RTSP流地址不兼容问题排查解决
  13. tornado web高级开发项目之抽屉官网的页面登陆验证、form验证、点赞、评论、文章分页处理、发送邮箱验证码、登陆验证码、注册、发布文章、上传图片...
  14. 二、python时间序列数据的相减
  15. 【渝粤教育】电大中专常见病药物治疗 (3)作业 题库
  16. 数字信号处理实验线性卷积与循环卷积计算
  17. 云灾备是更好的“企业保险”,百亿灾备市场迎来阿里云
  18. Java_题目_面向对象文字花钱格斗游戏
  19. jQuery插件之图片预加载
  20. word文档如何停止限制编辑

热门文章

  1. cxgrid主从表 点+号展开_深入理解Redis主从复制
  2. java 不用if_Java 不用for不用if写出九九乘法表算法
  3. mysql监控nginx_mysql和nginx服务是否正常监控脚本
  4. linux 查看目录挂载的ip,Linux挂载IPSAN和FCSAN操作,Linux挂载NFS文件系统
  5. dapper封装_用了Dapper之后通篇还是SqlConnection,真的看不下去了
  6. 一个星期+4轮面试终拿下offer,进阶学习
  7. python【力扣LeetCode算法题库】220-存在重复元素 III
  8. 北京高性能计算机应用中心,中国气象局高性能计算机系统资源使用报告-北京高性能计算机应用中心.PDF...
  9. 华科与浙大计算机学院,计算机最强14所高校排名,清华第2,浙大第4,南大第6,华科第10...
  10. java lombok 视频_Java开发神器Lombok使用详解