#amazon-s3 #s3 #aes #crypto #cli-tool #local-storage #backblaze-b2

app crabguard

为s3存储提供端到端加密的命令行工具

5个版本

0.1.4 2023年10月1日
0.1.3 2023年10月1日
0.1.2 2023年9月30日
0.1.1 2023年9月28日
0.1.0 2023年9月23日

加密学类别中排名第712

每月下载量约26次

MIT许可

35KB
802行代码(不包括注释)

🦀🔒 crabguard: 为远程和本地存储提供端到端加密的命令行工具

crates.io

功能

  • 对Amazon S3存储进行加密的上传、下载和删除操作
  • 使用随机96位nonce的AES-GCM对称加密
  • 使用sha256哈希文件名
  • 文件分块(目前块大小硬编码为1MB)
  • 中断后恢复上传/下载

未来工作

  • 处理不完整/损坏的文件
  • 基于密码的密钥派生
  • 动态文件分块
  • 提高延迟和性能(例如,在单独的连接中上传/下载多个块)

入门

创建一个类似这样的.env文件

AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
AWS_REGION_NAME=us-west-004
AWS_ENDPOINT=s3.us-west-004.backblazeb2.com
AWS_BUCKET_NAME=testbucket

当运行上传命令时,将在您的.env文件中生成并存储新密钥。不用说,您应该备份此密钥。如果您丢失它,您将无法解密文件,甚至无法知道文件名。

常用命令

cargo r --release -- upload ~/Downloads/23-08-11\ 11-35-15\ 3555.jpg
cargo r --release -- download 23-08-11\ 11-35-15\ 3555.jpg
cargo r --release -- delete 23-08-11\ 11-35-15\ 3555.jpg
cargo r --release -- list

依赖关系

~19–32MB
~556K SLoC