首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多个GridFs存储将req.user与元数据关联

多个GridFs存储将req.user与元数据关联
EN

Stack Overflow用户
提问于 2021-03-10 08:46:36
回答 1查看 42关注 0票数 1

我可以使用multer-gridfs-storage将文件上传到我的MongoDB,但我在将文件与用户关联时遇到了问题,我想要的是能够将我从passportjs获得的req.user传递到文件元数据

代码语言:javascript
运行
AI代码解释
复制
// Create mongo connection
const conn = mongoose.createConnection(mongoURI);


// Init gfs
let gfs;

conn.once('open', () => {
gfs = Grid(conn.db, mongoose.mongo);
gfs.collection('uploads');
});

// Create storage engine
const storage = new GridFsStorage({
  url: mongoURI,
  file: (req, file) => {
  crypto.randomBytes(16, (err, buf) => {
  if (err) {
        return reject(err);
      }
      const filename = buf.toString('hex') + 
      path.extname(file.originalname);
      const fileInfo = {
        filename: filename,
        bucketName: 'uploads',
        metadata: {
          user : // I want to pass here req.user 
        }
      };
      resolve(fileInfo);
    });
  });
},
});
const upload = multer({ storage }); 
EN

回答 1

Stack Overflow用户

发布于 2021-03-10 13:50:57

您应该像这样实现:

代码语言:javascript
运行
AI代码解释
复制
// Create mongo connection
const conn = mongoose.createConnection(mongoURI);


// Init gfs
let gfs;

conn.once('open', () => {
gfs = Grid(conn.db, mongoose.mongo);
gfs.collection('uploads');
});

// Create storage engine
const storage = new GridFsStorage({
  url: mongoURI,
  file: (req, file) => {
  crypto.randomBytes(16, (err, buf) => {
  if (err) {
        return reject(err);
      }
      const filename = buf.toString('hex') + 
      path.extname(file.originalname);
      const user = req.user;
      const fileInfo = {
        filename: filename,
        bucketName: 'uploads',
        metadata: user
      };
      resolve(fileInfo);
    });
  });
},
});
const upload = multer({ storage }); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66561236

复制
相关文章
基于MongoDB GridFS的图片存储
它是mongodb的一个子模块,使用GridFS可以基于mongodb来持久存储文件.并且支持分布式应用(文件分布存储和读取).GridFS是mongodb中用户存储大对象的工具,对于mongodb,BSON格式的数据(文档)存储有尺寸限制,最大为16M.但是在实际系统开发中,经常会有上传图片或者文件的功能,这些文件可能尺寸会很大..我们可以借用Gridfs来辅助实现这些文件的管理. Mongo GFS的文件表是由 表名.files和 表名.chunks 构成,前者是文件信息构成,后者是文件的内容,两者通过
张善友
2018/01/22
3.1K0
MongoDB-4 GridFS 文件存储
1. 配置config spring: data: mongodb: uri: mongodb://username:password@192.168.2.72:27017 database: mydb @Component public class WebConfig { @Value("${spring.data.mongodb.database}") private String mongodb; @Bean public Gri
风间影月
2020/03/05
1.1K0
golang mongoDB GridFS查询 存储 删除文件
GridFS 用于存储和恢复那些超过16M(BSON文件限制)的文件(如:图片、音频、视频等),如果没有超过16m大小可以将数据保存在BSON数据中。 GridFS 也是文件存储的一种方式,但是它是存储在MonoDB的集合中。
地球流浪猫
2018/08/02
3.2K0
golang mongoDB GridFS查询 存储 删除文件
JPEG 图片存储格式与元数据解析
说到图片,我们首先会想到,几种常见图片格式,如:.jpg, .png, .gif 等。
我是一条小青蛇
2019/10/23
2.8K0
JPEG 图片存储格式与元数据解析
WGCNA将共表达基因与表型数据相关联
单纯的共表达基因集合的结果并不能与我们的实验设计相关联,对于识别到的几十个共表达基因集合,一一进行富集分析去挖掘其功能,看上去如此的盲目,没有目的性,所以我们需要对共表达基因集进一步挖掘,常规的做法就是分析其中与性状相关的共表达基因,然后针对这些基因通过富集分析来研究其功能。
生信修炼手册
2020/05/08
2.7K0
WGCNA将共表达基因与表型数据相关联
技术干货| 如何在MongoDB中轻松使用GridFS?
点击下方公众号关注并分享,获取MongoDB最新资讯! GridFS是用于存储和检索超过16 MB大小限制的BSON文档文件的规范。 注意 GridFS 不支持多文档事务 相较于将一个文件存储在单条文档中,GridFS将文件分为多个部分或块[1],并将每个块存储为单独的文档。默认情况下,GridFS使用的块默认大小为255kB;也就是说,除最后一个块,GridFS会将文件划分为255 kB的块。最后一个块只有必要的大小。同样,最后的那个块也不会大于默认的块大小,仅使用所需的空间以及一些其他元数据。 Grid
MongoDB中文社区
2022/04/14
7K0
技术干货| 如何在MongoDB中轻松使用GridFS?
数据间关联与追溯
企业大数据是企业内部资源与相关外部资源的数据集。而企业组织是一个整体,对该组织资源和资源活动进行描述的数据也应该是一个整体,而不应该有孤立的数据。一个企业中的任何一部分都必须与其他的部分产生关联,否则就成为组织孤岛,即使是孤岛,只要这个组织孤岛还消耗公司的资源,包括资金和人力,那就跟组织产生了联系,就可以将该孤岛跟组织的其他部分关联起来。
明悦数据
2020/05/28
9040
数据间关联与追溯
MONGODB GridFS 存储文件 与 文件系统存储,你有何优势让我放弃文件系统?
是在抱歉,本应该周五是其他数据库,周一到周四都是 postgresql , mysql ,但目前的状态下,(都不知道今天是星期几)暂时不在准守这样的设置,以后待稳定后,在恢复原来的“人设”。
AustinDatabases
2020/02/21
3.4K0
MONGODB  GridFS 存储文件 与 文件系统存储,你有何优势让我放弃文件系统?
Atlas元数据存储模型分析
导语:Atlas 是一个可扩展的核心基础治理服务集 - 使企业能够有效地和高效地满足 Hadoop 中的合规性要求,并允许与整个企业数据生态系统的集成。该项目用于管理共享元数据、数据分级、审计、安全性以及数据保护等各个方面,是数据治理的重要组成部分。本文介绍Atlas的存储子系统,分析Atlas的存储模型和各个元数据要素的存储结构。 Atlas简介 Atlas 是一个可扩展和可扩展的核心基础治理服务集 - 使企业能够有效地和高效地满足 Hadoop 中的合规性要求,并允许与整个企业数据生态系统的集成。
腾讯技术工程官方号
2019/09/11
4.3K0
Atlas元数据存储模型分析
Go 数据存储篇(六):数据表之间的关联关系和关联查询
MySQL 之所以被称之为关系型数据库,是因为可以基于外键定义数据表之间的关联关系,日常开发常见的关联关系如下所示:
学院君
2020/10/19
3.3K0
Go 数据存储篇(六):数据表之间的关联关系和关联查询
Excel将两个表格关联数据
有时候我们需要将两个数据表,合并成为一张数据表,根据两张表中,有一个相同定义的列进行合并。
全栈程序员站长
2022/09/09
5.2K0
MongoDB GridFS 怎么用
本文为2020年MongoDB应用案例与解决方案征集活动优秀应用案例:MongoDB在京东的应用,作者王勇。
MongoDB中文社区
2021/02/26
4.5K0
元数据新型存储架构的探索
一个软件产品存储架构是需要仔细斟酌和考虑的事情,既要保持稳定性也要保持跟上主流技术的发展趋势。元数据产品从最初主要支持关系型的数据管理到现在的大数据平台、数据湖、微服务这种新的数据架构形态的管理。原有的存储架构从分析元数据关系效率、检索速度都不能满足应用的需求了。
yuanyi928
2019/06/17
3.2K0
元数据新型存储架构的探索
配置Hive使用MySql存储元数据
默认情况下,Hive会使用Derby来存储元数据(主要是表、列、分区Partition的信息)。Derby是一个嵌入式的本地数据库,只能单进程进行访问,不允许多个连接。因此,Derby只适合本地测试,不适合用在生产环境。Hive支持使用单独的数据库来存储元数据,比如MySql、PostgreSql等,本文将介绍如何配置Hive使用MySql存储元数据。
张子阳
2018/09/28
3.5K0
NameNode是如何存储元数据的?
edits文件的产生: NN在启动之后,每次接受的写操作请求,都会将写命令记录到edits文件中,edits文件每间隔一定的时间和大小滚动!
孙晨c
2020/07/13
2.5K0
如何将多个数据快速对齐
我们在使用条码标签打印软件设计制作标签时,会使用到很多元素,比如文字、图形、条形码、二维码等等。我们在输入这些元素的时候会出现参差不齐的现象,为了美观,需要按照一定的方式将这些元素快速对齐。下面就详细介绍操作方法。
神奇像素科技
2021/12/08
1.3K0
如何将多个数据快速对齐
PostgreSQL - update语句怎么关联多个表
对于select语句,我们可以通过join/outer join来关联多个表;但是对于update语句,是不能直接通过join/outer join来关联多表数据的,这里仅针对PostgreSQL。
雨临Lewis
2022/01/11
5.4K0
大数据入门基础系列之浅谈Hive的数据存储和元数据存储
企鹅号小编
2018/01/08
1.1K0
[C#]使用Join与GroupJoin将两个集合进行关联与分组
本文为原创文章、源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称、作者及网址,谢谢! 本文使用的开发环境是VS2017及dotNet4.0,写此随笔的目的是给自己及新开发人员作为参
CNXY
2017/12/25
2.2K0
[C#]使用Join与GroupJoin将两个集合进行关联与分组
点击加载更多

相似问题

与Mongoose架构关联的多GridFS存储文件上载

19

将元数据帐户与令牌关联

17

存储与对象关联的元数据的正确方法?

11

存储文档和关联元数据

11

使用Mongoose将GridFS-Stream文件与模式关联

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档