• 【Docker项目实战】使用Docker部署Plik临时文件上传系统


    一、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

    二、本地环境介绍

    2.1 本地环境规划

    本次实践为个人测试环境,操作系统版本为centos7.6。

    hostnameIP地址操作系统版本Docker版本
    dokcer192.168.3.166centos 7.62 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3.2 检查Docker版本

    检查Docker版本

    [root@jeven ~]# docker -v
    Docker version 20.10.17, build 100c701
    
    • 1
    • 2

    3.3 检查docker compose 版本

    检查Docker compose版本,确保2.0以上版本。

    [root@jeven ~]# docker compose version
    Docker Compose version v2.6.0
    
    • 1
    • 2

    四、下载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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    五、部署Plik临时文件上传系统

    5.1 创建挂载目录

    创建挂载目录

    mkdir -p /data/plik/data
    
    • 1

    设置权限

    chmod -R 777 /data/plik/
    
    • 1

    5.2 创建Plik容器

    使用docker-cli快速部署plik容器

    docker run  -d  \
    --name plik \
    -p 8566:8080  \
    -v /data/plik/data:/home/plik/server/files  \
    rootgg/plik
    
    • 1
    • 2
    • 3
    • 4
    • 5

    使用docker compose运行plik容器

    version: "3"
    services:
      plik:
        image: rootgg/plik
        container_name: plik
        ports:
          - "8566:8080"
        volumes:
          - /data/plik/data:/home/plik/server/files
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 使用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
    
    • 1
    • 2
    • 3
    • 4

    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
    
    • 1
    • 2
    • 3

    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.
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    六、Plik的基本使用

    6.1 访问Plik首页

    访问地址:http://192.168.3.166:8566/,将IP换为自己服务器IP地址。

    在这里插入图片描述

    6.2 Plik的基本设置

    在左侧第一个选项,点击启动后,第一次下载后,文件立即从服务器删除。

    在这里插入图片描述

    在左侧第二个选项,点击启动后,开启流媒体。

    在这里插入图片描述

    在左侧第三个选项,点击启用后,上传者可以删除文件。

    在这里插入图片描述

    在左侧第四个选项,点击启用后,上传和下载之前需要输入密码。

    在这里插入图片描述

    在左侧第五个选项,点击启用后,可以在上传的内容中添加评论。

    在这里插入图片描述

    6.3 上传测试文件

    将所有Plik设置选项都设置关闭状态

    在这里插入图片描述

    点击上传文件

    在这里插入图片描述
    在这里插入图片描述

    6.4 分享文件

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

    在这里插入图片描述

  • 相关阅读:
    不要小看 WebSocket!长连接、有状态、双向、全双工都是王炸技能
    【数据链路层】封装成帧和透明传输和差错控制
    Shell脚本编程实践——第1关:编写一个脚本,求斐波那契数列的前10项及总和
    从上半年智能驾驶前装量产数据看市场走势,你的机会在哪里?
    面试题整理:如何判断一个对象是否属于某个类?
    VB.net webbrowser 自定义下载接口实现
    最全元宇宙概念分析!元宇宙为何发展于区块链?
    【SpringBoot教程】SpringBoot+MybatisPlus数据库连接测试 用户收货信息接口开发
    【SQL】SQL语法及常见命令
    e.preventDefault()阻止默认行为
  • 原文地址:https://blog.csdn.net/jks212454/article/details/134675473