开箱即用的 Python Flask 文件服务
使用 Flask 框架实现的一个简单文件服务,前端使用 bootstrap 风格,支持文件上传和下载。
此项目仅用于学习用途,因为内在逻辑相对简单,所以存在路径穿越等安全问题没有处理,切勿用于生产环境
- 下载本仓库
git clone https://github.com/lyy289065406/flask-file-server.git
- 可自行修改 settings.yml 中关于服务本身的环境配置
- 本地启动:
python ./app/main.py
- 访问 http://127.0.0.1:9527,默认账密为
admin / 123456
- 下载本仓库
git clone https://github.com/lyy289065406/flask-file-server.git
- 可自行修改 docker-compose.yml 中关于服务本身的环境配置
- 本地构建镜像:
bin/build.sh
或ps/build.ps1
- 本地运行容器:
bin/run.sh
或ps/run.ps1
- 在 hosts 添加
{your_IP} flask.local.com
域名解析 - 访问 http://flask.local.com,默认账密为
admin / 123456
由于 docker 运行的架构模式为 nginx -> uwsgi -> flask,所以无法通过 IP 访问(跨域问题),默认使用 flask.local.com
作为访问入口,需要手动为其添加 DNS 解析,解析到本地、局域网、公网均可。若要修改你自己的域名/端口,请全局搜索并替换域名/端口,然后使用 bin/build.sh
重新构建镜像。
若不想下载 Github 仓库,可以直接使用 docker hub 的镜像 expm02/flask-file-server:latest
Docker 相关脚本说明
- 构建镜像:
bin/build.sh
或ps/build.ps1
- 清理镜像:
bin/clean.sh
或ps/clean.ps1
- 发布镜像:
bin/deploy.sh
或ps/deploy.ps1
- 运行容器:
bin/run.sh
或ps/run.ps1
- 停止容器:
bin/stop.sh
或ps/stop.ps1
flask-file-server
├── README.md ...................... [此说明文档]
├── Dockerfile .................... [Docker 构建脚本]
├── docker-compose.yml ............. [Docker 构建脚本]
├── LICENSE
├── imgs
├── app ............................ [应用根目录]
│ ├── conf
│ │ └── settings.yml ........... [应用配置,关键配置项有注释]
│ ├── files ...................... [上传文件的存储位置]
│ ├── web_root ................... [web 根目录]
│ ├── settings.py ................ [应用配置加载]
│ ├── main.py .................... [应用启动入口(python 启动方式)]
│ ├── entrypoint.sh .............. [应用启动入口(docker 启动方式)]
│ ├── uwsgi.ini .................. [uwsgi 启动配置]
│ └── requirements.txt ........... [python 依赖说明]
├── bin ........................... [linux 执行脚本]
│ ├── build.sh ................... [构建镜像]
│ ├── clean.sh ................... [清理镜像]
│ ├── deploy.sh .................. [发布镜像]
│ ├── run.sh ..................... [运行容器]
│ └── stop.sh .................... [停止容器]
└── ps ............................ [windows 执行脚本]
├── build.ps1 .................. [构建镜像]
├── clean.ps1 .................. [清理镜像]
├── deploy.ps1 ................. [发布镜像]
├── run.ps1 .................... [运行容器]
└── stop.ps1 ................... [停止容器]