什么是 Plik ?
Plik
是一个基于Go
语言的可扩展且用户友好的临时文件上传系统(类似于Wetransfer
)。
软件主要特点:
- 强大的命令行客户端
- 易于使用的
Web
用户界面 - 多个数据后端:文件、
OpenStack Swift
、S3
、Google Cloud Storage
- 多个元数据后端:
Sqlite3
、PostgreSQL
、MySQL
OneShot
:文件在第一次下载后销毁- 流式传输:文件从上传者直接流式传输给下载者(服务器端不存储任何内容)
- 可移动的:允许上传者随时删除文件
TTL
:自定义过期日期- 密码:使用登录/密码(基本认证)保护上传
- 评论:添加自定义信息(使用
Markdown
格式) - 用户认证:本地/
Google
/OVH
- 上传限制:
IP
源/令牌 - 管理员命令行界面和
Web
用户界面 - 服务器端加密(使用
S3
数据后端) - 多架构构建和
Docker
镜像 ShareX Uploader
:直接集成到ShareX
中plikSharp
:适用于Plik
的.NET API
客户端Filelink for Plik
:Thunderbird
插件,用于将附件上传到Plik
官方提供了在线 demo
,地址:https://plik.root.gg
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 plik
,选择第一个 rootgg/plik
,版本选择 latest
。
本文写作时,
latest
版本对应为1.3.8
;
卷
在 docker
文件夹中,创建一个新文件夹 plik
,并在其中建一个子文件夹 data
记得给
data
目录新增Everyone
的读写权限,否则上传文件的时候会报错
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/plik/data | /home/plik/server/files | 存放上传文件 |
一些高级特性,需挂载设置文件
plikd.cfg
到容器的/home/plik/server/plikd.cfg
,感兴趣的可以参考官方文档:https://github.com/root-gg/plik/blob/master/documentation/docker.md
端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 | 容器端口 |
---|---|
8566 | 8080 |
命令行安装
如果你熟悉命令行,可能用 docker cli
更快捷
# 新建文件夹 plik 和 子目录
mkdir -p /volume1/docker/plik/data# 进入 plik 目录
cd /volume1/docker/plik# 修改目录权限
chmod a+rw /data# 运行容器
docker run -d \--restart unless-stopped \--name plik \-p 8566:8080 \-v $(pwd)/data:/home/plik/server/files \rootgg/plik
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
version: '3'services:plik:image: rootgg/plikcontainer_name: plikrestart: unless-stoppedports:- 8566:8080volumes:- ./data:/home/plik/server/files
然后执行下面的命令
# 新建文件夹 plik 和 子目录
mkdir -p /volume1/docker/plik/data# 进入 plik 目录
cd /volume1/docker/plik# 修改目录权限
chmod a+rw /data# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d
运行
在浏览器中输入 http://群晖IP:8566
就能看到主界面
左上角是一些开关项,鼠标移动到问号上,会有提示
Destruct after the first download ?
:第一次下载后销毁,意思就是开启后,第一次下载后,文件立即从服务器删除Streaming ?
:文件从上传者流式传输到下载者(服务器端不存储任何内容)Removable ?
:上传者可以随时删除文件Password ?
:启用后,上传和下载之前需要输入密码Comments (Markdown) ?
:启用后,可以在上传的内容中添加自定义消息(Markdown
格式)
老苏使用了默认状态,有兴趣可以自己试试
点 Add files
选择文件
点 Upload
开始上传,点 Remove
可以删除
上传成功之后
可以把二维码或者 URL
分享给别人,微信扫码后就可以下载了
上传的文件保存在 /docker/plik/data
目录中,但并不是原来的文件名
除了网页外, Plik
还支持命令行客户端
另外 Plik
还提供了 REST-full API
来管理上传和获取文件,感兴趣的请参考官方文档:https://github.com/root-gg/plik/blob/master/documentation/api.md
参考文档
root-gg/plik: Plik is a temporary file upload system (Wetransfer like) in Go.
地址:https://github.com/root-gg/plik
Plik
地址:https://plik.root.gg