SuperAPI AI 工具集

telnyx-storage-go

编程与开发

查看项目

更新于 10-16 10:14

技能介绍

用途

telnyx-storage-go 是 Telnyx 提供的 Go 语言存储技能示例,用于通过 S3 兼容的 Telnyx Storage API 管理云存储桶(bucket)和对象(object)。它面向使用 Go 开发、需要将 Telnyx 云存储集成进自身应用的开发者。

安装与初始化

安装命令:

go get github.com/team-telnyx/telnyx-go

初始化客户端时需引入 context、fmt、os 以及 github.com/team-telnyx/telnyx-go 和 github.com/team-telnyx/telnyx-go/option,通过 option.WithAPIKey(os.Getenv("TELNYX_API_KEY")) 设置 API 密钥。文档中的全部示例均假设 client 已按此方式初始化。

错误处理

文档强调所有 API 调用都可能因网络错误、限流(429)、校验错误(422)或认证错误(401)而失败,建议在生产代码中始终处理错误。示例展示了通过 errors.As 判断 *telnyx.Error 并按 StatusCode 分支处理的方式:

  • 401:API 密钥无效
  • 403:权限不足
  • 404:资源不存在
  • 422:校验错误(检查字段格式)
  • 429:被限流(使用指数退避重试)

非 telnyx.Error 类型则按网络错误处理,检查连通性并重试。

主要能力

  1. 获取存储桶 SSL 证书:GET /storage/buckets/{bucketName}/ssl_certificate,返回已存储的证书详情(如适用)。返回字段包括 created_at、id、issued_by、issued_to、valid_from、valid_to。

  2. 添加 SSL 证书:PUT /storage/buckets/{bucketName}/ssl_certificate,上传 SSL 证书及其匹配密钥,以便将 Telnyx 存储用作 CDN。返回字段同上。

  3. 删除 SSL 证书:DELETE /storage/buckets/{bucketName}/ssl_certificate,删除 SSL 证书及其匹配密钥。返回字段同上。

  4. 查询 API 使用量:GET /storage/buckets/{bucketName}/usage/api,返回某个存储桶在特定时间段内按方法类别分组的 API 使用详情,参数包含 StartTime 与 EndTime。返回字段包括 categories(数组)、timestamp、total。

  5. 查询存储桶使用量:GET /storage/buckets/{bucketName}/usage/storage,返回存储桶占用的存储空间与文件数量。返回字段包括 num_objects、size、size_kb、timestamp。

  6. 创建预签名对象 URL:POST /storage/buckets/{bucketName}/{objectName}/presigned_url,返回带时效和鉴权的 URL,可用于下载(GET)或上传(PUT)对象,相当于 AWS S3 的 presigned URL。可选参数为 ttl(整数)。返回字段为 content。

使用方式

技能以 Go 代码示例的形式给出每个接口的调用方式,开发者参照示例替换参数即可调用对应 API。使用前需配置 TELNYX_API_KEY 环境变量,并确保 Go 模块已引入 telnyx-go。

适用场景

适用于需要在 Go 应用中管理 Telnyx 云存储桶与对象、为存储桶配置 SSL 证书以配合 CDN、统计存储与 API 用量,或为对象生成有时效的下载/上传链接的场景。

限制与注意事项

  • 预签名 URL 的鉴权方式与 AWS S3 不同,文档明确要求不得使用 AWS s3api CLI 或 SDK 的 presign 方法生成预签名 URL,参考 https://developers.telnyx.com/docs/cloud-storage/presigned-urls。
  • 文档示例中的参数(如 bucketName、StartTime、EndTime)在代码片段中以空值占位,实际使用时需填入真实值。
  • 关于计费、价格、具体生效效果等信息,资料中暂未提供。