ossutils2.x加密ak

ossutil是阿里云官方提供的用于管理对象存储OSS的命令行工具。2.0 版本是其一个重大的升级,在架构、性能和易用性上都进行了全面的重写和优化。

ossutil 2.0支持通过 ossutil config credential 命令 加密 ak/sk/token


概述

ossutil 2.0 是一个用 Go 语言编写的、高性能的阿里云 OSS 命令行管理工具。它旨在替代旧版的(Python编写的)ossutil,提供了更快的速度、更低的资源占用以及更现代化的命令行体验。

主要特点与优势

与旧版相比,2.0 版本具有以下显著优势:

  1. 极致的性能

    • 并发操作: 在上传、下载、拷贝等操作中默认使用并发和分片操作,极大提升了大数据文件和高并发场景下的传输速度。
    • Go 语言优势: 编译为本地代码,启动速度快,执行效率远高于旧版的 Python 解释器。
  2. 更低资源占用

    • 由于 Go 语言的运行时效率,ossutil 2.0 在内存和 CPU 占用上通常比旧版更低,尤其是在处理大量小文件时。
  3. 简化的安装与部署

    • 单一二进制文件: 整个工具就是一个可执行文件,无需安装 Python 环境或任何依赖库。下载后即可直接运行,部署极其方便。
    • 跨平台支持: 提供 Windows、Linux、macOS 等多种操作系统和架构的预编译版本。
  4. 增强的易用性

    • 更清晰的命令行语法: 命令结构更直观。
    • 交互式配置: 使用 ossutil config 命令可以引导式地完成配置,包括 Endpoint、AccessKey 等。
    • 丰富的进度显示: 在传输文件时,会显示清晰的进度条、传输速度和预计剩余时间,用户体验更好。
  5. 更全面的功能覆盖

    • 支持 OSS 几乎所有的核心功能,包括:
      • 存储空间(Bucket)管理: 创建、列举、删除Bucket,设置权限、生命周期、日志、跨区域复制等。
      • 对象(Object)管理: 上传、下载、删除、列举、拷贝文件,设置文件元信息等。
      • 权限管理: 设置 Bucket 和 Object 的 ACL(读写权限)。
      • 高阶功能: 支持镜像回源、Restore 归档文件、管理版本控制等。

基本使用

1. 下载与安装

选择对应您操作系统的二进制文件,下载后即可运行。
对于 Linux/macOS,通常需要赋予执行权限:

1
2
chmod +x ossutil
./ossutil --help

2. 配置认证信息

regions/endpoints

cn-hangzhou
oss-cn-hangzhou.aliyuncs.com  # 外网
oss-cn-hangzhou-internal.aliyuncs.com  # 内网

accessKeyID
accessKeySecret
Region
endpoint

在使用前,需要先配置您的 OSS 访问信息。

1
2
3
4
5
6
ossutil config

ossutil64 -c ~/.myossutilconfig ls oss://example-bucket

# ak通过环境变量传递
ossutil64 -e oss-cn-hangzhou.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret ls oss://example-bucket

然后根据提示输入:

  • Endpoint: 您的 OSS Bucket 所在的地域端点(例如:oss-cn-hangzhou.aliyuncs.com)。
  • AccessKey IDAccessKey Secret: 您的云账号访问密钥。
  • STS Token: 如果使用临时令牌,可以在此输入。

配置信息默认会保存在 ~/.ossutilconfig 文件中。

3.credential加密ak

# 加密ak存储
[root@xxx ~]# ossutil config credential  
[default]
Please enter the config file name,the file name can include path(default "/root/.ossutilconfig", carriage return will use the default file. If you specified this option to other file, you should specify --config-file option to the file when you use other commands):

No config file entered, will use the default config file "/root/.ossutilconfig"
Please enter profile:.ossconfig

Please enter authenticate mode, supports StsToken,RamRoleArn,EcsRamRole,Process,Uri,OIDCRoleArn,AK:AK
For the following settings, carriage return means skip the configuration.
Do you need to encrypt access key id and access key secret (y or N):y
Please enter Access Key ID [None]:xxxx
Please enter Access Key Secret [None]:xxxxxxx

74.986972(s) elapsed

4. 常用命令示例

  • 列举 Buckets

    1
    ossutil ls
  • 列举指定 Bucket 下的文件

    1
    ossutil ls oss://your-bucket-name/
  • 上传文件/目录

    1
    2
    3
    4
    5
    # 上传单个文件
    ossutil cp /local/path/file.txt oss://your-bucket-name/

    # 递归上传整个目录
    ossutil cp -r /local/directory/ oss://your-bucket-name/target-path/
  • 下载文件/目录

    1
    2
    3
    4
    5
    # 下载单个文件
    ossutil cp oss://your-bucket-name/file.txt /local/path/

    # 递归下载整个目录
    ossutil cp -r oss://your-bucket-name/directory/ /local/path/
  • 删除文件

    1
    ossutil rm oss://your-bucket-name/unwanted-file.txt
  • 同步目录(增量同步)

    1
    2
    3
    4
    5
    6
    # 将本地目录同步到 OSS,只上传新增或变化的文件
    ossutil sync /local/directory/ oss://your-bucket-name/target-path/

    ossutil sync D:/localfolder/ oss://examplebucket/destfolder/ --delete
    # 强制同步本地到bucket保持一致
    /opt/ossutil -c /opt/oss-ak sync . oss://xxxx/ --delete -f

与旧版(1.0)的主要区别

特性 ossutil 1.x (旧版) ossutil 2.x (新版)
编程语言 Python Go
性能 较慢,单线程/少线程 极快,默认高并发、分片
安装 需要 Python 环境 单一二进制文件,无需依赖
资源占用 较高 较低
跨平台 支持,但依赖环境 原生支持,更好
配置文件 多种格式 统一格式,更清晰
进度显示 基础 可视化进度条和速度