#amazon-s3 #s3 #ceph #aws #amazon #config-file #cli-client

app s3rs

支持多配置的S3命令行客户端

61个版本

0.4.30 2024年7月29日
0.4.28 2024年3月5日
0.4.26 2023年12月1日
0.4.25 2023年10月19日
0.1.6 2018年6月23日

#94命令行界面

Download history 2/week @ 2024-05-18 2/week @ 2024-05-25 83/week @ 2024-06-29 221/week @ 2024-07-27 7/week @ 2024-08-03

每月 228 次下载

MIT 许可证

1.5MB
1.5K SLoC

S3RS

Build Status

一个强大的 S3 Rich Support 客户端

  • 使用一次性填充加密配置,请参阅 secret 命令,使用 s3rs -s 'your secret words' 重新使用配置。
  • 下载可执行文件,解压即可使用
  • rust 版本 2018
  • 多配置(请将配置文件放置在 ~/.config/s3rs 下)
  • 交互式命令行工具
  • 易于使用HTTP协议调试
  • AWS4, AWS2 支持
  • 支持AWS S3多区域的重定向
  • 支持自动分片上传
  • 支持过滤器 v0.2.8
  • 支持无协议格式 v0.2.9
  • 支持命令行界面模式 v0.3.0
  • 支持S3配置文件加密功能 v0.4.0
    • s3rs-c~/.配置/s3rs/aws2.toml-s'the你喜欢的密码'密钥加密
    • 使用 -s 选项运行 s3rs 或使用 secret set <secret phrases or hexal literal>
  • 支持分片下载

使用方法

shell模式

  • 执行 s3rs 将进入shell模式,并执行 help,您可以看到您可以使用哪些命令

命令模式

  • 使用完整路径的配置文件

    • s3rs--配置=/你的/s3s/配置/文件 ls
  • 使用 example.toml 文件,位于 ~/.config/s3rs,文件名不带扩展名

    • s3rs--配置=示例 ls

命令列表

表1:列表命令将发送单个HTTP请求

COMMAND FUNCTION CEPH AWS
ls 列出所有存储桶 O O
ls s3://bucket 列出存储桶中的对象 O O
ls s3://bucket/prefix 列出存储桶中匹配前缀的对象 O O
ll 列出所有对象的详细信息(存储类型,修改时间,etag) O O
ll s3://bucket 列出存储桶中对象的详细信息 O O
ll s3://bucket/prefix 列出存储桶中匹配前缀的对象的详细信息 O O
mb s3://bucket 创建存储桶 O O
rb s3://bucket 删除存储桶 O O
put s3://bucket/object 上传文件 O O
put s3://bucket 上传文件(文件名作为对象名) O O
put test s3://bucket/object 上传指定对象名的测试文件 O O
get s3://bucket/object file 下载对象 O O
get s3://bucket/object 在当前文件夹中下载对象 O O
cat s3://bucket/object 显示对象内容 O O
del s3://bucket/object [delete-marker:true] 删除对象(带有标志) O O
删除标记在AWS中使用 O
tag list s3://bucket/object 列出对象上的标签 O O
tag ls s3://bucket/object 列出对象上的标签 O O
tag add s3://bucket/object key1=value1 [key2=value2] ... 向对象添加标签 O O
tag put s3://bucket/object key1=value1 [key2=value2] ... 向对象添加标签 O O
tag del s3://bucket/object 从对象中删除标签 O O
tag rm s3://bucket/object 从对象中删除标签 O O
/uri?query 提供原始URL O O
secret set 设置密钥以在运行时加密或解密配置 O O
secret set 设置密钥以在运行时加密或解密配置 O O
secret unset 清理内存中的密钥 O O
密钥加密 加密并打印当前配置到屏幕上 O O
密钥加密 加密并将当前配置保存到s3rs配置文件夹 O O
secret show 在屏幕上显示当前明文配置 O O
secret show 将当前明文配置保存到s3rs配置文件夹 O O

表2:列表命令将发送多个HTTP请求

高层命令 集成功能 CEPH AWS
la 列出所有对象 O O
info s3://bucket acl(ceph, aws), location(ceph, aws), versioning(ceph, aws), uploads(ceph), version(ceph) O O

表3:仅针对带有系统密钥的CEPH的列表命令

COMMAND FUNCTION
usage s3://bucket 显示存储桶的使用情况

表4:仅针对带有系统密钥的CEPH的列表命令

外壳设置命令 FUNCTION
s3_type ceph/aws/aws4/aws2 更改不同S3提供者的设置
format xml/json 更改客户端请求的格式
log trace/debug/info/error 更改日志级别
- Info : 用于Http头和体的信息
- debug: 用于认证签名散列信息
- trace: 关于rust的更多详细信息
logout 注销并重新选择用户
Ctrl + d 注销并重新选择用户

表5:S3类型的默认格式

S3 TYPE AUTH TYPE FORMAT URL STYLE
ceph aws4 json path-style
aws aws4 xml virtual-hosted–style

表6:关于此项目的讨论

讨论 链接
COSCon'19 幻灯片

通过Crate.io安装

通过rustup和cargo安装rust工具

  • curl --proto '=https' --tlsv1.2 -sSfhttps://sh.rustup.rs | sh

为ubuntu提供的附加包

  • apt-get安装libssl-dev pkg-config openssl

可以通过以下命令通过cargo安装s3rs。

  • cargo安装s3rs

设置rust二进制文件的路径

  • export PATH=$PATH:~/.cargo/bin

配置文件将在二进制程序首次运行时自动设置

  • s3rs

运行 s3rs,然后在 ~/.config/s3rs 下生成示例,然后编辑 ~/.config/s3rs 下的配置文件

开发

通过rustup和cargo安装rust工具

  • curlhttps://sh.rustup.rs -sSf | sh
  • git clone https://github.com/yanganto/s3rs.git
  • cargo测试
  • cargo构建
  • 可执行二进制文件位于 ./target/debug/s3rs

演示

依赖

~15–33MB
~488K SLoC