当前位置:Gxlcms >
数据库问题 >
MongoDB C++ gridfs worked example
MongoDB C++ gridfs worked example
时间:2021-07-01 10:21:17
帮助过:20人阅读
<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;
}
MongoDB C++ gridfs worked example
标签:file_path put class host hand private 使用 efi set