Skip to main content

文件服务相关问题

1. 上传的附件,是以文件方式存储的,怎么变更文件存储的路径?

配置中心

在配置管理中,修改配置:com.toone.v3.platform-13mongodb(mongodb配置)

设置路径:配置中心 → 系统高级配置 → 系统维护 → 配置管理 → mongodb 配置

img

这2个配置项:

ismongo :设置用户值为 false

filesavepath :根据项目需要修改用户值,缺省值为 upload

含义:上传的附件,原来以 mongodb 方式存储,改为以文件方式存储。

img

在上传一个附件后,会在执行系统的根目录下,生成一个名称为 upload 的文件夹。

img

文件会以 “upload\构件编码\上传日期” 的路径形式,保存文件。

img

变更路径

首先,在目标地址,建一个空的文件夹。

Eg:在G盘建一个名为 “附件” 的文件夹。

img

在配置中心的配置管理中,设置 com.toone.v3.platform-13mongodb(mongodb配置) 配置项 filesavepath ,设置用户值为绝对路径 G:\附件

img

上传附件后,文件就会以 “附件\构件编码\上传日期” 的路径形式保存文件,Eg:保存 “G:\附件\fjcz\2022-03-09” 中。

img

复制文件

那以前上传到 upload 的文件,怎么办呢?

只要把 upload 文件夹下面的所有东西,都复制到新的地址 “ G:\附件 ” 中即可。

不要只复制文件,而需要把目录 “ \构件编码\上传日期 ” 全部复制。

img

复制成功后,以前上传的文件,也可以下载、预览了。

img

info
  1. 修改配置中心后,需要重启服务。
  2. mongo方式和文件方式存储的文件是不互通的。

2. 第三方如何对平台的mongo进行文件的上传、下载操作?

第三方的系统,可以通过 http 请求格式的方式,对平台的mongo进行文件的上传、下载、预览操作。

上传:

http://localhost:8080/module-operation!executeOperation?operation=FileUpload&token=
{"data":{"dataId":"bec51699342a7037d462c66b16c2a4d5","uploadId":"","storeType":"1"}}

下载:

http://localhost:8080/module-operation!executeOperation?operation=FileDown&token=
{"data":{"isMulti":false,"dataId":"bec51699342a7037d462c66b16c2a4d5","isShow":0}}

预览:

http://localhost:8080/module-operation!executeOperation?operation=FileDown&token=
{"data":{"isMulti":false,"dataId":"bec51699342a7037d462c66b16c2a4d5","isShow":1}}

其中:

  • dataId :文件 id
  • isShow :0下载;1预览
  • token :需要把 token 的内容做 uri 编码(encodeURIComponent),防止 token 值出现乱码

第三方系统按照这个格式,发送http请求就行了。

注意
  • 文件流是第三方控件传的,请求本身参数不会带文件流。
  • 上传到自己服务器上怎么开发,就怎么开发。
  • 平台是用上传控件上传文件的。
  • 下载:附件为文件操作的 demo

3. 两个服务怎么使用同一个mongo?

若两个服务需要使用同一个 mongo ,文件上传到同一个 mongo 中。

具体设置:

在配置管理中,修改配置:com.toone.v3.platform-13mongodb(mongodb配置)

设置路径:配置中心 → 系统高级配置 → 系统维护 → 配置管理 → mongodb 配置

img

img

针对上图 5 项配置进行修改,具体配置如下:

(1)服务 1(启动mongo的服务)

  • isbind_ip:false

(2)服务 2(不启动mongo的服务)

  • url :填本机真实 IP,不要用 localhost 或者127.0.0.1
  • port :与服务 1 相同
  • username :与服务 1 相同
  • password :与服务 1 相同

(3)保存修改,重启服务 1 和服务 2

  • 服务 1 启动后,自带启动 mongo;
  • 服务 2 启动后,mongo 不会启动,并使用服务 1 的 mongo。
注:同理,可以 N 个服务连接同一个 mongo 。

4. 如何使用自己的mongoDB?

不使用平台自带的 mongoDB ,想独立自己安装一个。

要求:mongoDB 的版本要和平台使用的一样,为 2.4.3 。

img

具体设置:

在配置管理中,修改配置:com.toone.v3.platform-13mongodb(mongodb配置)

设置路径:配置中心 → 系统高级配置 → 系统维护 → 配置管理 → mongodb 配置

img

针对此 4 项配置进行修改,保存后重启服务。

img

url :在用户值填写真实IP,不要用localhost或者127.0.0.1

portusernamepassword :有变化就填用户值,没变就不用修改。

设置完成后,系统自带的 mongoDB 就不会随服务启动了。

5. mongodb修复?

mongodb 迁移后,出现文件对不上的情况,使用如下方法对 mongodb 进行修复。

操作步骤:

  1. 打开 cmd 命令行工具

    img

  2. 进入mongodb工具文件夹 “V-AppServer\V3Runtime\conf\setting\mongo\bin\win64”

    例如:进入E盘

    E:
    cd E:\GSOA_Release\V-AppServer\V3Runtime\conf\setting\mongo\bin\win64

    img

  3. 连接 mongodb,运行如下命令行

    .\mongo.exe 127.0.0.1:27017/v3
    或者
    .\mongo.exe localhost:27017/v3

    27017为mongodb的端口号

    如下,为连接完成后。

    img

  4. 运行如下命令行

    use v3

    img

  5. 接着,运行如下命令行

    db.repairDatabase()

    img

  6. 等待修复完成,修复时间根据 mongodb 数据大小会有差异,直到出现OK字样,即表示修复完成。

  7. 最后,测试文件服务是否已被修复。