27 个版本 (10 个重大变更)

0.10.0 2024 年 7 月 30 日
0.9.4 2024 年 5 月 13 日
0.9.1 2024 年 3 月 5 日
0.9.0 2023 年 12 月 19 日
0.0.1 2019 年 9 月 5 日

#403命令行工具

Download history 7/week @ 2024-04-29 179/week @ 2024-05-13 38/week @ 2024-05-20 19/week @ 2024-05-27 19/week @ 2024-06-03 193/week @ 2024-06-10 12/week @ 2024-06-17 7/week @ 2024-06-24 13/week @ 2024-07-08 5/week @ 2024-07-15 195/week @ 2024-07-29 41/week @ 2024-08-05 47/week @ 2024-08-12

每月 283 次下载

BSD-3-Clause

320KB
8K SLoC

s3m

Deploy Test codecov crates.io

s3m 是一个用于在 S3 存储桶中存储数据流的命令行工具。

试图解决的问题

有一些数据流不能丢失,并且在创建时,它们会降低运行系统的性能,例如,如果流是数据库的备份,每次生成流时可能会锁定整个集群(取决于使用的选项和工具,例如 mysqldump/xtrabackup),然而,创建流的努力与数据库的大小成比例,在大多数情况下,数据库越大,所需的时间和 CPU 以及内存就越多。

在备份的情况下,通常将流通过压缩工具管道传输,然后存储到磁盘上,在某些情况下,由于大小限制,无法将数据写入数据库所在的现有磁盘或远程挂载端点,因此压缩的备份应流式传输到 S3 存储桶(X 提供商),因此如果在传输过程中由于某种原因连接丢失,几乎在完成前,整个备份过程可能会损坏,在最坏的情况下,一切都需要从头开始。

s3m 的目标除了尝试消耗更少的资源外,还力求使传入流的存储过程尽可能“容错”,即使服务器丢失网络连接,流也可以从中断处恢复并继续上传过程,而无需从头开始(当输入来自 STDIN/pipe 时)。

https://s3m.stream

依赖项

~24–39MB
~748K SLoC