一、Plik介绍
1.1 Plik简介
Plik 是 golang 中的一个可扩展且友好的临时文件上传系统(类似 Wetransfer)。1.2 Plik特点
- 强大的命令行客户端
- 易于使用的 Web UI
- 多种数据后端:文件、OpenStack Swift、S3、Google Cloud Storage
- 多个元数据后端:Sqlite3、PostgreSQL、MySQL
- OneShot:文件在第一次下载后被销毁
- 流:文件从上传器流式传输到下载器(服务器端不存储任何内容)
- 可移动 :赋予上传者随时删除文件的能力
- TTL : 自定义到期日期
- 密码:使用登录名/密码保护上传(Auth Basic)
- 注释:添加自定义消息(Markdown 格式)
- 用户身份验证 : 本地 / Google / OVH
- 上传限制:源IP / 令牌
- 管理员 CLI 和 Web UI
- 服务器端加密(使用 S3 数据后端)
- 多架构构建和 docker 镜像
- 分享X上传器:直接集成到 ShareX 中
- plikSharp:Plik 的 .NET API 客户端
- Filelink for Plik : Thunderbird 插件将附件上传到 Plik
1.3 使用场景
- 远程协作:当团队成员需要共享大型文件但常规电子邮件无法处理时,Plik 提供了一个简单的方法来上传文件,并通过生成的链接分享给团队中的其他人。
- 临时备份:对于需要快速备份重要数据的情况,用户可以使用 Plik 将文件上传至云端存储(如 S3 或 Google Cloud Storage),并在完成备份后自动销毁文件以节省空间。
- 软件开发协作:开发团队可以在内部使用 Plik 来交换大型构建文件或测试数据集,通过设置过期时间或下载次数限制来控制文件的可用性。
- 多媒体文件分享:对于摄影师或视频制作人来说,Plik 成为一个分享高分辨率图像或视频文件的好工具,特别是当他们需要快速发送给客户或合作伙伴进行审查时。
- 技术支持与故障排除:技术支持人员可以使用 Plik 快速上传和分享诊断日志或屏幕截图,以便远程解决客户遇到的问题。
二、本地环境介绍
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为centos7.6。2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;2.在Docker环境下部署Plik临时文件上传系统。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。[root@jeven ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2023-11-22 17:32:04 CST; 6 days ago
Docs: https://docs.docker.com
Main PID: 11795 (dockerd)
Tasks: 33
Memory: 164.9M
CGroup: /system.slice/docker.service3.2 检查Docker版本
检查Docker版本[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c7013.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。[root@jeven ~]# docker compose version
Docker Compose version v2.6.0四、下载Plik镜像
从docker hub拉取Plik镜像[root@jeven ~]# docker pull rootgg/plik
Using default tag: latest
latest: Pulling from rootgg/plik
188c0c94c7c5: Pull complete
f96bea0e51ed: Pull complete
ae9f8219d19c: Pull complete
d803b156e271: Pull complete
aaef3faf0191: Pull complete
Digest: sha256:8d88186c07c9aa67c5db2062920be6eb04f975c75257589381e82149c5a4a796
Status: Downloaded newer image for rootgg/plik:latest
docker.io/rootgg/plik:latest五、部署Plik临时文件上传系统
5.1 创建挂载目录
创建挂载目录mkdir -p /data/plik/data设置权限chmod -R 777 /data/plik/5.2 创建Plik容器
使用docker-cli快速部署plik容器docker run -d
--name plik
-p 8566:8080
-v /data/plik/data:/home/plik/server/files
rootgg/plik使用docker compose运行plik容器version: "3"
services:
plik:
image: rootgg/plik
container_name: plik
ports:
- "8566:8080"
volumes:
- /data/plik/data:/home/plik/server/files通过docker-compose.yaml文件来创建plik容器
[root@jeven plik]# docker compose up -d
[+] Running 2/2
⠿ Network plik_default Created 0.3s
⠿ Container plik Started 1.8s
5.3 检查plik容器状态
检查plik容器状态,确保plik容器正常启动。[root@jeven plik]# docker compose ps
NAME COMMAND SERVICE STATUS PORTS
plik "/bin/sh -c ./plikd" plik running 0.0.0.0:8566->8080/tcp, :::8566->8080/tcp5.4 检查plik容器日志
检查plik容器日志,确保plik服务正常运行。[root@jeven plik]# docker compose logs
plik | [11/28/2023 12:21:13][INFO ] Starting plikd server v1.3.1
plik | [11/28/2023 12:21:13][INFO ] Starting server at http://0.0.0.0:8080
plik | [11/28/2023 12:21:13][INFO ] Will clean old uploads in 10677 seconds.
六、Plik的基本使用
6.1 访问Plik首页
访问地址:http://192.168.3.166:8566/,将IP换为自己服务器IP地址。
6.2 Plik的基本设置
在左侧第一个选项,点击启动后,第一次下载后,文件立即从服务器删除。




6.3 上传测试文件
将所有Plik设置选项都设置关闭状态


6.4 分享文件
复制文件链接到其他电脑即可下载。