cactus-io/mammillaria

一个简单、快速和无状态的文件下载微服务

0.2.2 2020-12-07 16:27 UTC

This package is auto-updated.

Last update: 2024-09-08 00:25:40 UTC


README

Mammillaria 是一个轻量级、快速和无状态的文件下载微服务,为第三方提供下载内容。

Mammillaria 使用 JWT 来保护内容免受匿名访问,同时提供直接访问内容的链接。

下载 API

下载文件的 REST API 为

GET: {host}/api/v2/cactus/files/{token}/content

其中 {host} 是服务器的完整路径,{token} 是 JWT 令牌。

令牌

文件的详细信息、访问控制和其它元数据都被放在 JWT 令牌中。令牌中有几个字段可以控制 Mammillaria。有关令牌中字段的更多信息,请参阅文档/token.md。

快速开始

创建目录

mkdir mammillaria
cd mammillaria

创建测试文件

touch README.md
echo "#Hello world">>README.md
cd ..

首先执行以下命令生成令牌

docker run -it \
	cactusio/mammillaria:latest \
	../bin/generate-token

填写所有必需的属性以生成新令牌

Mammillaria
File Path:/README.md
Access (r, rw, w):r
Expire at (ex. 2021-01-01 00:00:00):2021-01-01 00:00:00
Key:321

-------------------------------------------
Token:
-------------------------------------------
 File     |/README.md
 Access   |r
 Expiry   |2021-01-01 00:00:00
-------------------------------------------
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwYXRoIjoiXC9SRUFETUUubWQiLCJhY2Nlc3MiOiJyIiwiZXhwaXJ5IjoiMjAyMS0wMS0wMSAwMDowMDowMCIsImhvc3QiOm51bGwsImFjY291bnQiOm51bGx9.7ayp1qlry4F_3yTJ1RkG9lYGgBowHVhXZoXYINjuyj8

运行服务器的新实例

docker run \
	-p "80:80" \
	-e "MAMMILLARIA_JWT_KEY=321" \
	-v ./mammillaria:/mnt/storage \
	cactusio/mammillaria:latest

打开浏览器下载文件

http://localhost:80/api/v2/{token}/content

示例

http://localhost:80/api/v2/cactus/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwYXRoIjoiXC9SRUFETUUubWQiLCJhY2Nlc3MiOiJyIiwiZXhwaXJ5IjoiMjAyMS0wMS0wMSAwMDowMDowMCIsImhvc3QiOm51bGwsImFjY291bnQiOm51bGx9.7ayp1qlry4F_3yTJ1RkG9lYGgBowHVhXZoXYINjuyj8/content

贡献

如果您想为该项目做出贡献,请阅读我们的贡献文档CONTRIBUTING.md。该CONTRIBUTING.md文件解释了如何设置开发安装、如何运行测试套件以及如何为文档做出贡献。

有关项目愿景和未来方向的更高层次的看法,请参阅Cactus 社区路线图