PicoShare + Docker 实战:打造极简自托管文件分享系统

PicoShare + Docker 实战:打造极简自托管文件分享系统

  • 一、PicoShare介绍
    • [1.1 PicoShare简介](#1.1 PicoShare简介)
    • [1.2 PicoShare优点](#1.2 PicoShare优点)
    • [1.3 PicoShare使用场景](#1.3 PicoShare使用场景)
  • 二、本地环境介绍
    • [2.1 本地环境规划](#2.1 本地环境规划)
    • [2.2 本次实践介绍](#2.2 本次实践介绍)
  • 三、本地环境检查
    • [3.1 检查Docker服务状态](#3.1 检查Docker服务状态)
    • [3.2 检查Docker版本](#3.2 检查Docker版本)
    • [3.3 检查docker compose 版本](#3.3 检查docker compose 版本)
  • 四、下载PicoShare镜像
  • 五、部署PicoShare
    • [5.1 创建部署目录](#5.1 创建部署目录)
    • [5.2 编辑docker-compose.yaml文件](#5.2 编辑docker-compose.yaml文件)
    • [5.3 创建PicoShare容器](#5.3 创建PicoShare容器)
    • [5.4 检查PicoShare容器状态](#5.4 检查PicoShare容器状态)
    • [5.5 检查PicoShare容器日志](#5.5 检查PicoShare容器日志)
  • 六、访问PicoShare首页
    • [6.1 进入PicoShare登录页](#6.1 进入PicoShare登录页)
    • [6.2 访问PicoShare首页](#6.2 访问PicoShare首页)
  • 七、PicoShare的基本使用
    • [7.1 上传文件](#7.1 上传文件)
    • [7.2 查看分享文件](#7.2 查看分享文件)
    • [7.3 查看文件列表](#7.3 查看文件列表)
    • [7.4 创建访客链接](#7.4 创建访客链接)
    • [7.5 查看磁盘空间大小](#7.5 查看磁盘空间大小)
  • 八、总结

一、PicoShare介绍

1.1 PicoShare简介

PicoShare是一种极简、易于托管的服务,用于共享图像和其他文件。

1.2 PicoShare优点

  • 直接下载链接:PicoShare 为您提供可以与任何人共享的直接下载链接。他们可以在没有广告或注册的情况下查看或下载文件。
  • 没有文件限制:与 imgur、Vimeo 或 SoundCloud 等只允许您共享特定类型文件的网站不同,PicoShare 允许您共享任何大小的任何文件。
  • 无需调整大小/重新编码:如果您上传图像、视频或音频等媒体,PicoShare 绝不会强迫您等待重新编码。上传文件后,您会立即获得直接下载链接,PicoShare 绝不会调整文件大小或重新编码您的文件。

1.3 PicoShare使用场景

  • 在工作场所共享文件:PicoShare可以用于在团队内部共享图像和其他文件。团队成员可以上传和下载文件,以便轻松地共享项目资料、设计文件、报告等。这样可以提高团队合作和协作效率。

  • 在个人博客或网站上展示图片:PicoShare可以用于个人博客或网站上展示图片。用户可以将图片上传到PicoShare,并使用PicoShare提供的链接将图片嵌入到自己的博客或网站中。

  • 在社交媒体上分享图片:PicoShare可以用于在社交媒体平台上分享图片。用户可以将图片上传到PicoShare,并使用PicoShare提供的链接在社交媒体上分享给朋友、粉丝或关注者。

  • 在论坛或社区分享图片:PicoShare可以用于在论坛或社区分享图片。用户可以将图片上传到PicoShare,并将链接分享给论坛或社区的其他成员,以便展示、讨论或解答问题。

  • 在移动设备上传输文件:PicoShare可以用于在移动设备之间传输文件。用户可以将文件上传到PicoShare,并使用PicoShare提供的链接在不同设备之间进行传输和共享。

  • 进行临时文件共享:PicoShare可以用于临时文件共享,例如在会议上传递资料或在团队合作临时需要共享文件的场合。

二、本地环境介绍

2.1 本地环境规划

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

hostname IP地址 操作系统版本 Docker版本
jeven 192.168.3.166 centos 7.6 20.10.17

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;

2.在Docker环境下部署PicoShare工具。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

bash 复制代码
[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 Sun 2024-01-21 14:36:20 CST; 24h ago
     Docs: https://docs.docker.com
 Main PID: 70926 (dockerd)
    Tasks: 22
   Memory: 59.9M
   CGroup: /system.slice/docker.service

3.2 检查Docker版本

检查Docker版本

bash 复制代码
[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c701

3.3 检查docker compose 版本

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

bash 复制代码
[root@jeven ~]# docker compose version
Docker Compose version v2.6.0

四、下载PicoShare镜像

从docker hub拉取PicoShare镜像

bash 复制代码
[root@jeven ~]# docker pull  mtlynch/picoshare
Using default tag: latest
latest: Pulling from mtlynch/picoshare
3695f6c099b8: Pull complete
310a6e8c94e1: Pull complete
5f31d7ececf5: Pull complete
29a0c806d8ab: Pull complete
fd5cc2ea1e0b: Pull complete
53f5193c4004: Pull complete
39f1be42c455: Pull complete
4f4fb700ef54: Pull complete
Digest: sha256:0373b57465518a26429891831f993752a7b51bb18d581b6b06527ea478fb6ab5
Status: Downloaded newer image for mtlynch/picoshare:latest
docker.io/mtlynch/picoshare:latest

五、部署PicoShare

5.1 创建部署目录

创建部署目录/data/picoshare

bash 复制代码
mkdir -p /data/picoshare  && cd /data/picoshare

5.2 编辑docker-compose.yaml文件

使用docker-cli方式部署,执行命令如下:

bash 复制代码
docker run \
  --env "PORT=4001" \
  --env "PS_SHARED_SECRET=somesecretpass" \
  --publish 4001:4001/tcp \
  --volume "${PWD}/data:/data" \
  --name picoshare \
  mtlynch/picoshare

本次实践部署使用docker compose方式,编辑docker-compose.yaml文件,可自行修改密码和映射端口。

yaml 复制代码
version: "3.2"
services:
  picoshare:
    image: mtlynch/picoshare
    restart: always
    environment:
      - PORT=4001
      - PS_SHARED_SECRET=admin # Change to any password
    ports:
      - 4261:4001
    command: -db /data/store.db
    volumes:
      - ./data:/data

5.3 创建PicoShare容器

使用docker-compose.yaml文件创建PicoShare容器

bash 复制代码
docker compose up -d

5.4 检查PicoShare容器状态

检查PicoShare容器状态,确保PicoShare容器正常启动。

bash 复制代码
[root@jeven picoshare]# docker compose ps
NAME                    COMMAND                  SERVICE             STATUS              PORTS
picoshare-picoshare-1   "/app/docker-entrypo..."   picoshare           running             0.0.0.0:4261->4001/tcp, :::4261->4001/tcp

5.5 检查PicoShare容器日志

检查PicoShare容器运行日志,确保PicoShare服务正常运行。

bash 复制代码
docker compose logs

六、访问PicoShare首页

6.1 进入PicoShare登录页

访问地址:http://192.168.3.166:3000,将IP替换为自己服务器IP地址,进入到PicoShare首页。如果无法访问,则检查服务器防火墙是否设置,云服务器的安全组端口是否放行等。点击右上角登录选项,进入PicoShare登录页。

6.2 访问PicoShare首页

填写之前在docker-compose.yaml中自定义的密码,进入PicoShare首页。


七、PicoShare的基本使用

7.1 上传文件

点击上传文件选项,将本地文件上传到PicoShare。

7.2 查看分享文件

复制文件的分享链接,将分享链接发送给其他人。

在浏览器打开文件分享链接,则可以在线预览文件,也可以点击下载分享文件。

7.3 查看文件列表

点击上方的"Files"模块,可以看到所有上传的文件列表。

7.4 创建访客链接

选择"Guest Links"模块,访客链接允许其他用户将文件上传到此 PicoShare 服务器无需登录。如果想让某人轻松找到一种方式,通过访客链接来共享文件。

  • 选择新建访客链接
  • 填写访客链接相关信息,确认创建。
  • 查看访客链接列表
  • 通过访客链接,不登录上传文件。


7.5 查看磁盘空间大小

system------Disk Usage,查看磁盘使用情况。


八、总结

PicoShare是一款轻量级的文件共享工具,为我们的日常工作与学习提供了很大的便利。它具有直观简洁的界面,操作也非常简单,能够快速上传文件。特别是访客链接的功能,使得我们可以方便地分享临时文件,免去了其他人的登录步骤,非常实用。此外,PicoShare能够快速打开共享文件,共享链接的有效期还可以自定义,根据需要设置链接的过期时间,非常符合我们的需求。总的体验下来,PicoShare是一款优秀的文件共享工具,值得一用!

相关推荐
镜子AI11 小时前
镜子AI 技术复盘:三条自动化链路上的“停止条件“设计
运维·人工智能·自动化
tianyuanwo11 小时前
NetBox 数据库详解:当“关系型数据库”被装进一个网络运维的领域模型里
运维·数据库·netbox
螺蛳粉 螺蛳粉12 小时前
第 05 篇:etcd 深入:Raft 共识、watch 机制与快照备份恢复实战(底座认知 05)
docker·云原生·容器·kubernetes·etcd·分布式存储·kube-apiserver
知已难寻13 小时前
03 · OpenStack的计算管理 Nova
运维·服务器·开发语言·云原生·云计算·openstack·开源软件
huainingning14 小时前
Windows syslog日志服务器搭建与模拟器对接
运维·服务器·智能路由器
say_fall14 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
wacsii15 小时前
【Linux进程(一)】Linux 进程初探:操作系统如何管理进程?fork() 为什么返回两次?
linux·运维·服务器
相思难忘成疾15 小时前
从零搭建 Kubernetes 1.30 集群:kubeadm 部署一主多从实战(RHEL 9.3 + Docker + flannel)
linux·运维·kubernetes
PellyKoo15 小时前
【docker】cifs卷改smb密码后容器起不来的解决方法
运维·docker·容器
时早玖沐15 小时前
放弃 QQ 官方机器人:用 SnowLuma + AstrBot 自建 QQ 机器人
docker·开源·agent