cactus-io / mammillaria
一个简单、快速和无状态的文件下载微服务
0.2.2
2020-12-07 16:27 UTC
Requires
- firebase/php-jwt: 5.x
- pluf/scion: 7.0.x
Requires (Dev)
- phpunit/phpunit: 9.x
- pluf/http2: 7.0.x
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 社区路线图。