c# - GridFS MongoDB 在下载文件时检索元数据
问题描述
我正在尝试使用 GridFs 上传和下载文档。
var mongoClient = new MongoClient("mongodb://localhost:27017");
var db = mongoClient.GetDatabase("TestDB");
Stream source = new MemoryStream(Content.ToBson());
//Initializing GdridFS conection
GridFSBucket bucket = new GridFSBucket(db);
var options = new GridFSUploadOptions
{
ChunkSizeBytes = 64512, // 63KB
Metadata = new BsonDocument
{
{ "A", "1" },
{ "booleanValue", true }
}
};
// file name and source content we are receiving fom post man.
var id = await Bucket.UploadFromStreamAsync("FileName", source, options);
到这里一切都很好。现在我想根据文件名和 id 下载文件。所以我用这个方法。
var x = Bucket.DownloadAsBytesAsync(fileName);
现在,当我下载它时,我想知道有关上传时存在的文件的所有信息。就像我想知道我在上传时存储的元数据信息还有文件名,上传时存在的每条信息的id,但我不知道在下载所有信息后如何获取它。任何帮助将不胜感激。问候
解决方案
基于https://mongodb.github.io/mongo-csharp-driver/2.10/reference/gridfs/downloadingfiles/和https://mongodb.github.io/mongo-csharp-driver/2.10/reference/gridfs/findingfiles /#gridfsfileinfo 类:
- 使用类似https://mongodb.github.io/mongo-csharp-driver/2.10/apidocs/html/M_MongoDB_Driver_GridFS_GridFSBucket_1_OpenDownloadStream.htm来获取流
- 使用https://mongodb.github.io/mongo-csharp-driver/2.10/apidocs/html/P_MongoDB_Driver_GridFS_GridFSDownloadStream_1_FileInfo.htm获取文件信息
- 使用https://mongodb.github.io/mongo-csharp-driver/2.10/apidocs/html/P_MongoDB_Driver_GridFS_GridFSFileInfo_1_Metadata.htm获取元数据
推荐阅读
- c# - 如何在 Xamarin 中恢复 Picker 的 ID
- python - multiprocessing.Pool:如何在旧进程完成时启动新进程?
- database - postgres delete 然后 pg_dump 转储已删除的数据
- python - 使用 Python 写入 HTML 文件
- javascript - 在 VSCode 中如何正确配置 jsconfig.json 以使带有 index.js 导入的绝对路径起作用?
- r - dplyr 用第一行替换 colnames 并使用管道函数删除第一行
- dialog - wxPython:如何根据嵌入的StaticText的内容使Dialog调整大小
- c - C 中未初始化的局部变量中包含的值到底是什么?
- c++ - Boost Socket 在 close()
- wordpress - 将 wordpress 文件上传到虚拟主机