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 在 命令行界面 中
每月 228 次下载
1.5MB
1.5K SLoC
S3RS
一个强大的 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