Skip to content
This repository has been archived by the owner on Apr 6, 2024. It is now read-only.

leeyoshinari/mycloud

Repository files navigation

mycloud

本项目已停止维护,如需搭建个人网盘,请查看这个页面更精美、功能更多的项目

详细介绍

功能

  • 文件夹的新建、删除、重命名、移动、导出
  • 文件上传、下载、新建、删除、移动、重命名、分享
  • 图片、音视频、pdf文件在线预览功能
  • markdown文档在线预览和编辑功能
  • 支持权限控制 (使用django自带的权限控制系统)
  • 支持集群部署
  • 支持分布式储存

技术选型

  • 系统框架:django
  • 数据库:django支持的所有关系型数据库
  • 文件存储:MinIO

系统架构

部署

1、克隆 git clone https://github.com/leeyoshinari/mycloud.git

2、进入目录 cd mycloud,修改配置文件config.conf

3、部署MinIO。个人使用不建议按照官方文档部署,直接在网上查资料,一条命令就可以启动;

4、初始化数据库,依次执行下面命令;

python3 manage.py migrate
python3 manage.py makemigrations myfiles
python3 manage.py sqlmigrate myfiles 0001
python3 manage.py migrate

5、数据初始化,主要是初始化根目录数据;

python3 manage.py loaddata initdata.json

6、创建管理员账号;

python3 manage.py createsuperuser

7、处理admin页面的静态文件;

python3 manage.py collectstatic

8、修改uwsgi.ini,只需修改端口号和项目所在目录即可;

9、部署nginx,location相关配置如下:(ps: 下面列出的配置中的mycloud是url上下文,即url前缀,可根据自己需要修改)
(1)静态请求:通过nginx直接访问静态文件,配置静态文件路径

location /mycloud/static {
    alias /home/mycloud/myfiles/static;
}

(2)动态请求:配置uwsgi的端口

location /mycloud {
     include uwsgi_params;
     uwsgi_pass 127.0.0.1:12020;
     uwsgi_param HTTP_Host $proxy_host;
     uwsgi_param HTTP_X-Real-IP $remote_addr;
     proxy_set_header HTTP_X-Forwarded-For $proxy_add_x_forwarded_for;
}

(3)访问文件系统:配置MinIO的端口

location /mycloud/getFile/ {
     proxy_pass  http://127.0.0.1:9000/;
     proxy_set_header Host $proxy_host;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

通常nginx会限制请求体大小,需要增加配置client_max_body_size 4096M;,还有其他超时时间的配置,可自行上网查找资料修改;

10、启动uwsgi

uwsgi uwsgi.ini

11、访问页面,url是 http://ip:port/上下文

12、访问权限控制页面,url是 http://ip:port/上下文/admin

13、如果想把磁盘上已有的文件放入云盘,可通过调用接口 file/uploadByPath?folderId=目录ID&path=文件路径 实现将磁盘文件上传到云盘。

Requirements

  • Django>=4.0.1
  • minio>=7.1.3
  • PyMySQL>=1.0.2
  • python 3.7+

About

Personal cloud disk (个人云盘)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published