@TOC
一、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。
hostname | IP地址 | 操作系统版本 | Docker版本 |
---|---|---|---|
dokcer | 192.168.3.166 | centos 7.6 | 2 20.10.17 |
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.service
3.2 检查Docker版本
检查Docker版本
[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c701
3.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/tcp
5.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首页
6.2 Plik的基本设置
在左侧第一个选项,点击启动后,第一次下载后,文件立即从服务器删除。
在左侧第二个选项,点击启动后,开启流媒体。
在左侧第三个选项,点击启用后,上传者可以删除文件。
在左侧第四个选项,点击启用后,上传和下载之前需要输入密码。
在左侧第五个选项,点击启用后,可以在上传的内容中添加评论。
6.3 上传测试文件
将所有Plik设置选项都设置关闭状态
点击上传文件
6.4 分享文件
复制文件链接到其他电脑即可下载。
七、总结
Plik 是一款用 Go 语言编写的临时文件上传系统,它的设计友好且易于使用,与 Wetransfer 类似。用户可以轻松地上传文件并获得一个分享链接,接收者通过该链接即可下载文件。它的界面简洁直观,即使是没有技术背景的人也能迅速上手。此外,Plik 还支持加密分享和自定义存储时长等功能,确保了文件的安全性和灵活性。整体而言,Plik 提供了一种高效便捷的大文件传输解决方案。