临时文件上传系统Plik

什么是 Plik ?

Plik 是一个基于 Go 语言的可扩展且用户友好的临时文件上传系统(类似于 Wetransfer)。

软件主要特点:

  • 强大的命令行客户端
  • 易于使用的 Web 用户界面
  • 多个数据后端:文件、OpenStack SwiftS3Google Cloud Storage
  • 多个元数据后端:Sqlite3PostgreSQLMySQL
  • OneShot:文件在第一次下载后销毁
  • 流式传输:文件从上传者直接流式传输给下载者(服务器端不存储任何内容)
  • 可移动的:允许上传者随时删除文件
  • TTL:自定义过期日期
  • 密码:使用登录/密码(基本认证)保护上传
  • 评论:添加自定义信息(使用 Markdown 格式)
  • 用户认证:本地/Google/OVH
  • 上传限制:IP源/令牌
  • 管理员命令行界面和 Web 用户界面
  • 服务器端加密(使用 S3 数据后端)
  • 多架构构建和 Docker 镜像
  • ShareX Uploader:直接集成到 ShareX
  • plikSharp:适用于 Plik.NET API 客户端
  • Filelink for PlikThunderbird 插件,用于将附件上传到 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

端口

本地端口不冲突就行,不确定的话可以用命令查一下

bash 复制代码
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
8566 8080

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

bash 复制代码
# 新建文件夹 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 文件

yaml 复制代码
version: '3'

services:
  plik:
    image: rootgg/plik
    container_name: plik
    restart: unless-stopped
    ports:
      - 8566:8080
    volumes:
      - ./data:/home/plik/server/files

然后执行下面的命令

bash 复制代码
# 新建文件夹 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

相关推荐
杨浦老苏1 小时前
开源音乐管理软件Melody
docker·群晖·多媒体
杨浦老苏3 小时前
面向npm的实时仪表板Dashly
网络·docker·群晖·导航
JunLan~5 小时前
Docker 部署 GLPI(IT 资产管理软件系统)
运维·docker·容器
特立独行的猫a6 小时前
使用 Docker(Podman) 部署 MongoDB 数据库及使用详解
数据库·docker·podman
LUCIAZZZ8 小时前
基于Docker以KRaft模式快速部署Kafka
java·运维·spring·docker·容器·kafka
特立独行的猫a12 小时前
Golang 应用的 Docker 部署方式介绍及使用详解
开发语言·docker·golang
康世行13 小时前
Windows环境下MaxKB大模型 Docker部署图文指南
windows·docker·容器
程序员石磊1 天前
学术总结Ai Agent中firecrawl(大模型爬虫平台)的超简单的docker安装方式教程
人工智能·爬虫·docker
司江龙1 天前
centos7 配置国内镜像源安装 docker
运维·docker·容器
西木Qi1 天前
Docker之Dockerfile
docker