Skip to content

koaqiu/oss-utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OSS管理工具

GitHub Release GitHub Actions Workflow Status GitHub go.mod Go version GitHub License

目前唯一的功能就是 更新 bucket的自定义域名的SSL证书。

要求必须先配置好一个自定义域名,以及正常可用的SSL证书(pemkey)。

使用

# powershell
# 克隆
git clone https://github.com/koaqiu/oss-utils.git
cd oss-utils
go env -w GOPROXY=https://goproxy.cn,direct ; go mod tidy ; go build # 编译
# 编译成功以后
.\oss-utils.exe ssl --bucket BUCKET --region cn-shanghai --cert domain.pem --key domain.key

版本信息与 CI 注入

构建时可以通过 -ldflags 注入版本号,程序内的 -v / --version 标志会显示该值。建议在 CI 中使用 git tag(例如 v1.2.3)作为版本并注入:

# 本地示例:
go build -ldflags "-X 'github.com/koaqiu/oss-utils/cmd.version=1.2.3'"
.\\\oss-utils.exe -v  # 输出: 1.2.3

CI 工作流(已配置)会在基于 v* 标签触发时自动把 tag 值作为 VERSION 注入到构建产物中并创建 Release。请在打 tag 时使用 v 前缀(例如 v1.2.3)。

本地构建与验证

以下示例展示了如何在本地用不同方式注入版本并验证输出:

  • PowerShell(Windows):
# 临时注入版本并构建
go build -ldflags "-X 'github.com/koaqiu/oss-utils/cmd.version=v1.2.3'" -o oss-utils.exe

# 运行并查看版本
.\oss-utils.exe -v  # 输出: v1.2.3
  • Bash(Linux / macOS):
# 注入版本并构建
go build -ldflags "-X 'github.com/koaqiu/oss-utils/cmd.version=v1.2.3'" -o oss-utils

# 运行并查看版本
./oss-utils --version  # 输出: v1.2.3
  • 使用环境变量(例如在脚本中设置 OSS 凭证用于手动测试):
$env:OSS_ACCESS_KEY_ID='ID'; $env:OSS_ACCESS_KEY_SECRET='SECRET'; .\oss-utils.exe ssl --bucket my-bucket --region cn-shanghai

如果你需要生成跨平台二进制并同时注入版本(与 CI 行为一致),可以使用 gox 或者在 CI 中按当前 workflow 使用 -ldflags 注入 cmd.version

配合certbot等证书工具使用更佳。

配置

  • 需要阿里云的RAM账号的 OSS_ACCESS_KEY_IDOSS_ACCESS_KEY_SECRET,并设置到环境变量中。程序会自动读取。
  • 需要为这个账号配置对于权限(参考下面的代码)https://ram.console.aliyun.com/policies/create

自定义策略

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "oss:PutCname",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "yundun-cert:DescribeSSLCertificatePrivateKey",
        "yundun-cert:DescribeSSLCertificatePublicKeyDetail",
        "yundun-cert:CreateSSLCertificate"
      ],
      "Resource": "*"
    }
  ]
}

更新日志

v1.0.2

  • 添加了--oss-access-id--oss-access-secret,方便命令行脚本中使用

v1.0.1

  • 添加了多域名支持 --domain
  • 添加了静默模式 --quiet-q
  • 发生错误的时候返回错误码

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Contributors

Languages