2 个版本
0.1.1-unstable | 2024年3月2日 |
---|---|
0.1.0-unstable | 2024年2月26日 |
#23 in #http-post
每月49次下载
75KB
1.5K SLoC
yeet/yoink — 文件存储和检索服务
一个可以将文件上传到服务中以从其他地方检索的服务。这旨在简化具有可配置持久后端的集群本地文件共享。
这里的一个关键方面是,此类服务可以减轻与对象存储、数据库或其他系统的通信,从而使应用程序中的实际存储和检索简化为简单的HTTP POST和GET操作,前提是提供文件ID。
⚠️ 此服务处于开发中。
sequenceDiagram
autonumber
Alice->>Alice's yeyo: do yeet
activate Alice;
Note over Alice,Alice's yeyo: Alice stores a file
activate Alice's yeyo;
Alice's yeyo -) Storage Backend: take file;
activate Storage Backend;
deactivate Storage Backend;
Alice's yeyo-->>Alice: okie #9829;
deactivate Alice's yeyo;
deactivate Alice;
Bob->>Bob's yeyo: do yoink
activate Bob;
Note over Bob,Bob's yeyo: Bob needs the file
activate Bob's yeyo;
Bob's yeyo ->> Alice's yeyo: maybe yoink?
activate Alice's yeyo;
Note over Bob's yeyo,Alice's yeyo: Bob's yeyo attempts to fetch the file from the source
alt has file
Alice's yeyo --) Bob's yeyo: here file #9829;
Note over Alice's yeyo,Bob's yeyo: If possible, Alice's yeyo returns the file directly
else no file
Alice's yeyo --) Bob's yeyo: sry no yoink
Note over Alice's yeyo,Bob's yeyo: Eventually the file would be missing
Bob's yeyo ->> Storage Backend: give file
activate Storage Backend;
Note over Bob's yeyo,Storage Backend: Bob's yeyo then talks directly to the Storage backend
Storage Backend --) Bob's yeyo: here file
deactivate Storage Backend;
end
deactivate Alice's yeyo;
Bob's yeyo-->>Bob: here file
deactivate Bob's yeyo;
deactivate Bob;
HTTP API
存储文件
/yeet
- 将文件交给服务进行存储并返回其ID。?file_name=...
- 可选。允许指定文件的元数据名称。
检索文件
/yoink/:id
- 根据其ID从存储中检索文件。
指标
/metrics
- 以Prometheus/OpenMetrics格式生成指标。
健康检查
/startupz
- 适用于Kubernetes启动探测。/readyz
- 适用于Kubernetes就绪探测。/livez
- 适用于Kubernetes生存探测。/health
- 适用于完整的健康检查(例如,由Google Cloud Load Balancer执行)。/healthz
- 适用于人工检查。
关闭
/stop
- 启动优雅关闭。
依赖项
~19–31MB
~465K SLoC