#s3 #amazon-s3 #aws #cli

app sup3

独立的S3上传工具

1 个不稳定版本

0.8.12 2022年11月28日

文件系统 中排名 1315

MIT 许可证

255KB
1.5K SLoC

sup3

Standalone Binaries

独立的S3工具

Recording of download with progress enabled

警告

这是一个 alpha 版本

任何东西都可能出错。使用的 Rust AWS SDK 也处于开发者预览阶段。

使用目标

  • CI和其他需要最小化环境,拉取Python或构建依赖可能不理想
  • 最终,作为一个一致、可靠、快速且有趣的交互式S3工具

设计

  • 尽可能像现有的Unix命令(例如cp,ls,cat)一样操作
  • 默认情况下,在合理的地方报告进度(例如cp,down,up)

特性

  • 跨平台
  • 使用Rust AWS SDK 的认证支持
  • 流式异步传输(文件不读入内存)
  • 远程错误上传恢复(由SDK提供)
  • 无启动延迟
  • 无运行时非平台依赖项(例如 libclibmlibgcc_s
  • 并发传输
  • 可选进度报告
  • 递归上传支持
  • 递归下载支持
  • 远程globbing(例如 sup3 ls s3://bucket/media/**/highres*.png .
  • 二进制大小减小
  • 上传参数,例如ACLs
  • 配置文件支持
  • 仅列出文件或仅列出目录
  • 分页列表
  • 服务器到服务器复制
  • 其他S3兼容主机的自定义端点(--endpoint
  • 同步操作(作为复制/上传/下载的一部分或单独)

命令

  • 上传(upload|down)(本地文件到S3远程)
  • 下载(download|down)(S3 URI到本地文件/目录)
  • 删除(rm)(S3 URI)
  • 列表(ls)(1..N S3 URI)
  • 列出存储桶(list-buckets|lb
  • 复制(cp
  • 显示(S3 URI)
  • 创建存储桶(mb)(S3 URI)

速度

在i7-7700HQ上进行的测量,与S3服务器大约50ms的RTT。

下载 - 20MiB文件

命令 平均值 [s] 最小值 [s] 最大值 [s] 相对 CPU用户 [s] CPU 系统 [s] CPU 相关
sup3 cp s3://bucket/file dir/ 1.306 ± 0.047 1.249 1.416 1.00 0.095 0.153 100%
aws s3 cp s3://bucket/file dir/ 1.855 ± 0.106 1.724 2.044 142% ± 10% 0.565 0.122 277%

下载 - 224byte 文件

命令 平均值 [s] 最小值 [s] 最大值 [s] 相对 CPU用户 [s] CPU 系统 [s] CPU 相关
sup3 cp s3://bucket/file dir/ 0.246 ± 0.006 0.234 0.255 100% 0.004 0.007 100%
aws s3 cp s3://bucket/file dir/ 0.910 ± 0.013 0.892 0.937 370% ± 11% 0.394 0.050 4036%

ls - 63,186 个文件从 bucket 通过子字符串

命令 平均值 [s] 最小值 [s] 最大值 [s] 相对 CPU用户 [s] CPU 系统 [s] CPU 相关
sup3 ls--子字符串 s3://bucket/子字符串 >/dev/null 10.053 ± 0.694 9.253 10.487 100% 0.485 0.141 100%
aws s3 ls s3://bucket/子字符串 >/dev/null 22.050 ± 3.809 19.643 26.441 219% ± 41% 11.772 0.143 1900%

依赖项

~33–46MB
~758K SLoC