#aws #glacier #crud #command-line-tool #storage #jobs #cli

app basmati

用于与 AWS Glacier 交互的命令行工具

4 个版本 (2 个重大更新)

0.3.1 2024年7月26日
0.3.0 2024年6月2日
0.2.0 2024年6月1日
0.1.0 2024年5月26日

#1361命令行工具

Download history 146/week @ 2024-05-24 373/week @ 2024-05-31 40/week @ 2024-06-07 4/week @ 2024-06-14 3/week @ 2024-06-28 11/week @ 2024-07-05 126/week @ 2024-07-26 6/week @ 2024-08-02

每月下载 132 次

MIT 许可证

43KB
1K SLoC

Basmati 是一个类似命令行的 cli 工具,用于在 AWS Glacier 上流式传输存档,从 AWS Glacier 到 AWS Glacier,AWS 的冷存储服务。冷存储意味着当您需要文件时,您必须发送一个请求,在 6 - 12 小时内得到满足。这个过程相当繁琐,因为您需要在启动下载作业的一定时间内下载您的存档。Basmati 通过在 TUI 应用程序中显示您的库存,轮询 Glacier 直至作业准备就绪和完成,以及计算所有令人烦恼的 treehashes 以成功上传存档,使其变得简单。

环境和设置

该工具假设您的 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 已在您的环境中设置。目前无法通过命令行参数传递这些信息。

打包

Basmati 目前作为 crate 或 Nix flake 提供

# crate
cargo install basmati
# get the flake
{
  inputs = {
    ...
    basmati.url = "github:vhsconnect/basmati";

};

# add to your packages attribute set
{pkgs, inputs, ...} :{
    environment.systemPackages = [
        inputs.basmati.packages.${pkgs.system}.default
    ]

};


用法

Usage: basmati [OPTIONS] [COMMAND]

Commands:
  create
  upload
  inventory
  download
  help       Print this message or the help of the given subcommand(s)

Options:
  -d, --debug...
  -h, --help      Print help
  -V, --version   Print version

创建

创建一个新的保险库

Usage: basmati create --vault-name <VAULT_NAME>

Options:
  -v, --vault-name <VAULT_NAME>
  -h, --help                     Print help

上传

上传存档或文件


Usage: basmati upload --file-path <FILE_PATH> --vault-name <VAULT_NAME>

Options:
  -f, --file-path <FILE_PATH>
  -v, --vault-name <VAULT_NAME>
  -h, --help                     Print help

下载

通过指定保险库和路径下载存档。您必须先运行 inventory 命令以下载您的资产账本

Usage: basmati download --vault-name <VAULT_NAME> --output-as <OUTPUT_AS>

Options:
  -v, --vault-name <VAULT_NAME>
  -o, --output-as <OUTPUT_AS>
  -h, --help

库存

下载特定保险库的库存列表

Usage: basmati inventory --vault-name <VAULT_NAME> --desc <DESC>

Options:
  -v, --vault-name <VAULT_NAME>
  -d, --desc <DESC>
  -h, --help                     Print help

删除存档

从保险库中删除存档

Usage: basmati delete-archive --vault-name <VAULT_NAME>

Options:
  -v, --vault-name <VAULT_NAME>
  -h, --help                     Print help

列出保险库

列出当前账户的所有保险库

Usage: basmati list-vaults

Options:
  -h, --help  Print help

待办事项

  • 缓存和 TMP 的更好清理
  • 在 TUI 中更好的输入处理

依赖关系

~28–41MB
~724K SLoC