17 个版本 (9 个破坏性更新)
0.10.1 | 2024 年 8 月 11 日 |
---|---|
0.10.0 | 2024 年 4 月 16 日 |
0.9.0 | 2024 年 3 月 10 日 |
0.8.1 | 2023 年 12 月 9 日 |
0.4.0 | 2023 年 3 月 8 日 |
#752 in HTTP 服务器
每月下载 2,237 次
在 6 个 Crates 中使用 (通过 htsget-test)
2.5MB
38K SLoC
s3s
S3 服务适配器
crate | 版本 | 文档 |
---|---|---|
s3s | ||
s3s-aws | ||
s3s-fs |
此实验项目旨在提供一个易于使用的适配器,用于构建兼容 S3 的服务。
s3s
以通用 hyper 服务的形式实现了 Amazon S3 REST API。兼容 S3 的服务可以专注于 S3 API 本身,而无需关心 HTTP 层。
s3s-aws
提供了有用的类型,并与 aws-sdk-s3
集成。
s3s-fs
基于文件系统实现了 S3 API,作为一个示例实现。它旨在进行集成测试,可以用作 模拟 S3 客户端。它还提供了一个用于调试的二进制文件。 运行测试服务器!
工作原理
上面的图表显示了 s3s
的工作方式。
s3s
在调用用户定义的服务之前将 HTTP 请求转换为操作输入。
s3s
在调用用户定义的服务后,将操作输出或错误转换为 HTTP 响应。
数据类型、序列化和反序列化是从 aws-sdk-rust 仓库中的 smithy 模型生成的。我们对 smithy 服务器代码生成 中的某些问题进行了手动修复,并使 s3s
现在可以使用。
安全性
S3Service
和本项目中的其他适配器没有安全保护。如果它们直接暴露在互联网上,可能会受到 攻击。
用户需要自行实现安全增强措施,例如 HTTP 主体长度限制、速率限制和背压。
贡献
赞助商
如果我的开源工作对您有所帮助,请赞助我。
每一分都很有帮助。谢谢!
依赖项
~11–23MB
~314K SLoC