Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was 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

AltStyle によって変換されたページ (->オリジナル) /