#s3 #http-request #web-server #s3-compatible #experimental #http-response #file

bin+lib s3s-fs

基于文件系统的实验性 S3 服务器

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 服务器

Download history 391/week @ 2024-05-03 654/week @ 2024-05-10 648/week @ 2024-05-17 583/week @ 2024-05-24 971/week @ 2024-05-31 853/week @ 2024-06-07 776/week @ 2024-06-14 874/week @ 2024-06-21 559/week @ 2024-06-28 443/week @ 2024-07-05 605/week @ 2024-07-12 544/week @ 2024-07-19 453/week @ 2024-07-26 617/week @ 2024-08-02 559/week @ 2024-08-09 440/week @ 2024-08-16

每月下载 2,237 次
6 个 Crates 中使用 (通过 htsget-test)

Apache-2.0

2.5MB
38K SLoC

s3s

Apache 2.0 licensed Unsafe Forbidden

S3 服务适配器

crate 版本 文档
s3s Crates.io Docs
s3s-aws Crates.io Docs
s3s-fs Crates.io Docs

此实验项目旨在提供一个易于使用的适配器,用于构建兼容 S3 的服务。

s3s 以通用 hyper 服务的形式实现了 Amazon S3 REST API。兼容 S3 的服务可以专注于 S3 API 本身,而无需关心 HTTP 层。

s3s-aws 提供了有用的类型,并与 aws-sdk-s3 集成。

s3s-fs 基于文件系统实现了 S3 API,作为一个示例实现。它旨在进行集成测试,可以用作 模拟 S3 客户端。它还提供了一个用于调试的二进制文件。 运行测试服务器!

工作原理

architecture diagram

上面的图表显示了 s3s 的工作方式。

s3s 在调用用户定义的服务之前将 HTTP 请求转换为操作输入。

s3s 在调用用户定义的服务后,将操作输出或错误转换为 HTTP 响应。

数据类型、序列化和反序列化是从 aws-sdk-rust 仓库中的 smithy 模型生成的。我们对 smithy 服务器代码生成 中的某些问题进行了手动修复,并使 s3s 现在可以使用。

安全性

S3Service 和本项目中的其他适配器没有安全保护。如果它们直接暴露在互联网上,可能会受到 攻击

用户需要自行实现安全增强措施,例如 HTTP 主体长度限制、速率限制和背压。

贡献

赞助商

如果我的开源工作对您有所帮助,请赞助我

每一分都很有帮助。谢谢!

依赖项

~11–23MB
~314K SLoC