感冒的方便面 2023-02-23 14:38 采纳率: 0%
浏览 8

MongoDB文件读取问题

一个门户网站,我把网页的静态资源放在MonggoDB中,通过后端返给前端,但是文件中包含大数据,base64不适用,然后想通过生成URL的方式,但是不知道如何生成?

  • 写回答

2条回答 默认 最新

  • 程序yang 全栈领域优质创作者 2023-02-23 15:58
    关注

    仅供参考:
    您可以使用MongoDB的GridFS来存储大文件,然后在生成URL时,可以使用GridFS提供的下载链接。以下是大致的实现步骤:

    1.使用GridFS将大文件存储到MongoDB中,您可以参考MongoDB官方文档来实现。

    2.在后端生成一个可下载的URL,具体步骤如下:

    • 获取该文件的ID,您可以在存储时获取该ID。
    • 使用GridFS提供的download_by_name()或download_by_id()函数来获取文件内容。
    • 生成一个随机的、带有有效期限的token,并将该token与文件ID保存到一个Map中。
    • 将生成的token返回给前端,前端可以使用该token来下载文件。

    3.在前端通过该URL来下载文件,具体步骤如下:

    • 向后端发送一个请求,携带token。
    • 后端根据token从Map中获取文件ID,并使用GridFS提供的download_by_name()或download_by_id()函数来获取文件内容,并返回给前端。
      需要注意的是,生成的token应该有一定的有效期限,避免被滥用。同时,生成的token也需要保证一定的随机性,避免被恶意猜测。
    评论

报告相同问题?

问题事件

  • 创建了问题 2月23日

悬赏问题

  • ¥30 python密码表示
  • ¥15 Flask应用部署到阿里云服务器失败,无法访问网页,问题出在哪里?
  • ¥15 计算个体的IBS遗传距离
  • ¥15 有什么好的直流步进减速电机42的厂家推荐,保持力矩达到0.3N.M
  • ¥15 一道蓝桥杯的题,请问我错在哪里
  • ¥15 关于#android问题,xposed模块找不到so
  • ¥15 UE5.4.2创建C++项目成功,但是编译失败
  • ¥15 华为手机备份nas,airdisk,遇到的空间不足问题。求个详细的解决方案。
  • ¥20 Cknife无法使用
  • ¥15 这个结构体为什么会出错呢?