应用场景

  1. 如果你想在团队间共享文件,却不想将文件放到互联网上,那么你就应该选择风灯网盘!
  2. 如果你想将公司的文件进行集中管理,却不想将文件放到互联网上,那么你就应该选择风灯网盘!
  3. 如果你想给不同的成员访问不同的文件,却不想借助互联网网盘,那么你就应该选择风灯网盘!
  4. 总之,只要你不想将共享文件放到互联网上,那么,选择风灯网盘就对了

安装

  1. 本套应用基于JAVA开发环境,需要MongoDB和MinIO来存储。因此在正式安装之前需要先将JAVA,MongoDB,MinIO安装完毕。
  2. 安装教程请至各软件官方查看文档
  3. 当然,您可能不具备安装以上软件的能力,这里准备了一个完整的运行环境包,你只需要双击一个文件即可启动。
  4. 下载地址(百度网盘提取码:o73q):风灯网盘启动包open in new window
  5. 下载完成后,解压缩,双击文件夹中的run.cmd即可运行。

使用教程

以下重点介绍风灯网盘如何进行配置和使用

几个注意事项

  1. 在启动包的config文件夹下分别放置了MinIO、MongoDB、Nginx和风灯网盘服务端的配置文件。一般情况下,您不需要做任何配置即可使用,但请注意,您最好将整个启动包放在一个有足够存储空间的盘符或文件夹下,以免空间不够需要迁移。
  2. 双击run.cmd文件后会自动打开4个命令行窗口,除标题为“风灯网盘-前端服务”的窗口能关闭外,其他窗口均不能关闭
  3. 您如果要关闭网盘服务,除关闭所有命令行窗口外,还需打开任务管理器,找到名称为nginx.exe进程(有两个),从下往上依次选中,并选择“结束进程”,才能将所有的风灯网盘服务相关进程管不关闭

使用

  1. 打开浏览器,输入http://localhost:8080open in new window,当前只有一个用户,admin,密码为13456 登录界面
  2. 点击用户与组菜单添加用户和组。请注意,用户名请勿使用中文或特殊字符。分配用户角色时请注意,”管理员“拥有的权限较高,一般只能给少数用户分配。请勿删除admin用户!!!用户与组界面
  3. 用户可以在“全部文件”菜单下新建文件夹和上传文件;”全部文件“至”其他“菜单均为当前用户私有的,其他用户无法访问,共享柜为所有用户都能访问的目录,其他任何登录的用户均可在上传或者下载文件,并且文件只能由上传者或者管理员删除。(如需定制权限请至网页底部联系我) 文件界面
  4. 点击右下角的魔法棒按钮可以切换黑色主题。 黑色主题界面

DIY配置

如果您具备一定的运维技能,您可以自己diy相关软件,以下给了一些有用示例,更多配置请参考启动包。

配置MongoDB

MongoDB第一次进入是不需要密码的,也没有任何用户。一般我们需要先添加一个账号并分配相应权限以更好的保护数据库。

通常添加用户和分配权限的语句如:

db.createUser({
        user : 'admin',
        pwd : '123456',
        roles : [
          'clusterAdmin',
          'dbAdminAnyDatabase',
          'userAdminAnyDatabase',
          'readWriteAnyDatabase'
        ]
      })

添加完mongodb的管理员账户,您还需添加一个风灯网盘的默认用户。请添加一个storage数据库,并添加group集合和user集合,group中添加一个管理员组,user中添加一个管理员用户,以下是实例:

{"_id":{"$oid":"60600c3a2e87d7dbc270ea60"},"name":"系统管理员"}
{"_id":{"$oid":"60600bde2e87d7dbc270ea5f"},"account":"admin","name":"管理员","active":true,"password":"$2a$10$F7H3pVZKDtQrJ1WAdRHIB.7XODJMleuja4BS0yNdSGZrxA6s6p5/S","role":"ADMIN","group":["60600c3a2e87d7dbc270ea60"]}

配置MinIO

MinIO是一个非常轻量的服务,风灯网盘用它来实际存储文件。

MinIO的启动脚本为:

minio server E:/data

其中:E:/data为文件存储的路径,请根据自己的情况妥善指定

配置Nginx

是一个高性能的HTTP和反向代理web服务器。

nginx的实例配置为:

http {
  include       mime.types;
  default_type  application/octet-stream;
  sendfile        on;
  client_max_body_size 10240G;
  keepalive_timeout  65;

  server {
    listen       8080;
    server_name  localhost;
    root       html/web;
    index      index.html;
    location /storage {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-Nginx-Proxy true;
      proxy_pass       http://127.0.0.1:9090; 
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
      root   html;
    }
  }
}

需要注意的是nginx服务的端口号,代理的端口以及前端静态文件的地址,静态文件可以从启动包的html文件夹下获取

配置风灯网盘

风灯网盘使用MongoDB存储用户、组、文件元素据等,使用MinIO来存储文件。因此需要将风灯网盘连接至启动好的MinIO和MongoDB中。

风灯网盘内置的默认配置为:

ukulele:
  storage:
    endpoint: 127.0.0.1
    port: 9000
    accessKey: minioadmin
    secretKey: minioadmin
    secure: false
spring:
  data:
    mongodb:
      authentication-database: admin
      username: admin
      password: '123456'
      host: 127.0.0.1
      port: 27017
      database: storage
  application:
    name: stroage-service
  servlet:
    multipart:
      enabled: true
      location: files
      file-size-threshold: 0B
      max-file-size: 10GB
      max-request-size: 10GB
server:
  port: 9090
  servlet:
    context-path: /storage
logging:
  level:
    org.springframework.data.mongodb.core: DEBUG
jjwt:
  security:
    base64-secret: MDk5ZmU2YzdhZWE5NWRhZTU0MjgzMTVmMTkxYTI5ZGJmODc3NWU2ZDc5OWI1YWMxZTE5NWYxZWVhY2VmZGYwMWQ1NmExNjI4M2M2OWUzOGM0Nzg1ZGU2YzgxNWVjYzNhODg4YzE0ODhlZDA0YjZlYTgzYzk3MGE4NWFkMmJmOGI=
    token-validity-in-seconds: 86400
    token-validity-in-seconds-for-remember-me: 259200

如果您的MinIO,MongoDB和风灯网盘在同一台服务器,其没有修改过MinIO的默认用户名与密码,MongoDB的admin库中也有一个admin账户且密码也是123456,则无需任何配置

如果不是,请新建一个txt(如application.txt)文件,将上述代码拷贝至txt文件中,一定要注意保留缩进。再将txt文件的扩展名修改为yml。 根据自己实际情况修改MiniIO的配置,MonogoDB的配置。当然,端口号,jjwt.security.base64-secret等是可以修改的。而server.servlet.context-path是不能修改的。 最后将风灯网盘程序与刚刚创建的yml文件放置在同一个问价夹下。

经过上述努力,我们可以动手启动风灯网盘啦!

启动代码为:

.\storage.exe .\jre\bin\java.exe -jar .\storage-service.jar --Dsrping.config.location=.\config\application.yml

使用愉快!