PicoShare 是一项简约的服务,可让您轻松共享文件。
有上百万种文件共享服务,但没有一种能与 PicoShare 媲美。以下是 PicoShare 的优势:
- 直接下载链接:PicoShare 为您提供可与任何人共享的直接下载链接。他们可以查看或下载文件,无需广告或注册。
- 没有文件限制:与 imgur、Vimeo 或 SoundCloud 等仅允许您共享特定类型文件的网站不同,PicoShare 允许您共享任何大小的文件。
- 无需调整大小/重新编码:如果您上传图像、视频或音频等媒体,PicoShare 绝不会强迫您等待重新编码。您上传文件后会立即获得直接下载链接,并且 PicoShare 绝不会调整文件大小或重新编码。
PS_SHARED_SECRET=somesecretpass PORT=4001 \ go run cmd/picoshare/main.go
要在 Docker 容器中运行 PicoShare,请从本地系统挂载一个卷来存储 PicoShare sqlite 数据库。
docker run \ --env "PORT=4001" \ --env "PS_SHARED_SECRET=somesecretpass" \ --publish 4001:4001/tcp \ --volume "${PWD}/data:/data" \ --name picoshare \ mtlynch/picoshare
如果您指定与Litestream兼容的云存储位置的设置,PicoShare 将自动复制您的数据。
您可以终止容器并稍后启动它,PicoShare 将从云存储位置恢复您的数据并继续运行,就像没有中断一样。
PORT=4001 PS_SHARED_SECRET="somesecretpass" LITESTREAM_BUCKET=YOUR-LITESTREAM-BUCKET LITESTREAM_ENDPOINT=YOUR-LITESTREAM-ENDPOINT LITESTREAM_ACCESS_KEY_ID=YOUR-ACCESS-ID LITESTREAM_SECRET_ACCESS_KEY=YOUR-SECRET-ACCESS-KEYdocker run
--publish "${PORT}:${PORT}/tcp"
--env "PORT=${PORT}"
--env "PS_SHARED_SECRET=${PS_SHARED_SECRET}"
--env "LITESTREAM_ACCESS_KEY_ID=${LITESTREAM_ACCESS_KEY_ID}"
--env "LITESTREAM_SECRET_ACCESS_KEY=${LITESTREAM_SECRET_ACCESS_KEY}"
--env "LITESTREAM_BUCKET=${LITESTREAM_BUCKET}"
--env "LITESTREAM_ENDPOINT=${LITESTREAM_ENDPOINT}"
--name picoshare
mtlynch/picoshare
笔记:
- 每个 Litestream 位置仅运行一个 Docker 容器。
- PicoShare 无法跨多个实例同步写入。
要在 docker-compose 下运行 PicoShare,请将以下内容复制到名为 的文件中docker-compose.yml
,然后运行docker-compose up
。
version: "3.2" services: picoshare: image: mtlynch/picoshare environment: - PORT=4001 - PS_SHARED_SECRET=dummypass # Change to any password ports: - 4001:4001 command: -db /data/store.db volumes: - ./data:/data
旗帜 | 意义 | 默认值 |
---|---|---|
-db |
SQLite 数据库路径 | "data/store.db" |
环境变量 | 意义 |
---|---|
PORT |
用于监听 HTTP 连接的 TCP 端口(默认为 4001)。 |
PS_BEHIND_PROXY |
"true" 当 PicoShare 在反向代理后面运行时,设置为以便更好地记录日志。 |
PS_SHARED_SECRET |
(必需)指定管理员用户登录 PicoShare 的密码。 |
您可以通过指定这些特定于 Docker 的变量来调整 Docker 容器的行为docker run -e
:
环境变量 | 意义 |
---|---|
LITESTREAM_BUCKET |
Litestream 兼容的云存储存储桶,Litestream 应在其中复制数据。 |
LITESTREAM_ENDPOINT |
Litestream 兼容的云存储端点,Litestream 应在其中复制数据。 |
LITESTREAM_ACCESS_KEY_ID |
您想要复制数据的存储桶的 Litestream 兼容云存储访问密钥 ID。 |
LITESTREAM_SECRET_ACCESS_KEY |
您想要复制数据的存储桶的 Litestream 兼容云存储秘密访问密钥。 |
LITESTREAM_RETENTION |
Litestream 快照和 WAL 文件将保留的时间(默认为 72 小时)。 |
如果你从源代码重建 Docker 映像,则可以使用以下命令调整构建行为docker build --build-arg
:
构建参数 | 意义 | 默认值 |
---|---|---|
litestream_version |
用于数据复制的Litestream版本 | 0.3.9 |
PicoShare 由 Michael Lynch 作为一个业余项目进行维护。
由于时间限制,我将 PicoShare 的范围限制在适合我的工作流程的功能上。不幸的是,这意味着我有时会拒绝非常好的功能的提案或贡献。这并不是反对这些功能,但我只有带宽来维护我使用的功能。
PicoShare 易于部署到云托管平台:
一些用户感到惊讶的是,当他们从 PicoShare 删除文件时,文件系统上的可用空间并没有恢复。
当您删除文件时,PicoShare 会保留空间以供将来上传。如果您想减少 PicoShare 对文件系统的使用,可以执行以下步骤手动强制 PicoShare 放弃空间:
- 关闭 PicoShare。
- 运行PicoShare 数据库的路径
sqlite3 data/store.db 'VACUUM'
。data/store.db
您会发现data/store.db
文件大小会缩小,因为它放弃了以前删除的文件专用的空间。如果您再次启动 PicoShare,系统信息屏幕将显示 PicoShare 文件的较小尺寸。