Profile
Back to NewsBack
GitHub Trending 2 min
Reader Mode
qiniu/go-sdk: golang sdk

qiniu/go-sdk: golang sdk

Qiniu Go SDK

LICENSE</a> Build Status</a> Go Report Card</a> GitHub release</a> codecov</a> GoDoc</a>

七牛云官方 Go SDK,提供对象存储、CDN、直播、实时音视频、短信、视频监控、IoT 设备联网、IAM、多媒体处理、审计日志、沙箱等服务的 Go 客户端。

安装

go get github.com/qiniu/go-sdk/v7

go.mod 中:

require github.com/qiniu/go-sdk/v7 v7.27.0

要求 Go 1.22 或更高版本。

快速开始

package main

import ( "context" "fmt" "time"

"github.com/qiniu/go-sdk/v7/storagev2/credentials" "github.com/qiniu/go-sdk/v7/storagev2/http_client" "github.com/qiniu/go-sdk/v7/storagev2/uploader" "github.com/qiniu/go-sdk/v7/storagev2/uptoken" )

func main() { // 创建凭证(AK/SK 从 https://portal.qiniu.com/user/key 获取) cred := credentials.NewCredentials("AccessKey", "SecretKey")

// 创建上传策略和凭证 putPolicy, _ := uptoken.NewPutPolicy("my-bucket", time.Now().Add(time.Hour))

// 创建上传管理器 uploadManager := uploader.NewUploadManager(&uploader.UploadManagerOptions{ Options: http_client.Options{Credentials: cred}, })

// 上传文件 objectName := "my-file.txt" err := uploadManager.UploadFile(context.Background(), "/path/to/file", &uploader.ObjectOptions{ BucketName: "my-bucket", ObjectName: &objectName, UpToken: uptoken.NewSigner(putPolicy, cred), }, nil) if err != nil { fmt.Println("上传失败:", err) return } fmt.Println("上传成功") }

功能模块

对象存储

| 包 | 说明 | |---|---| | storagev2 | v2 API(推荐) — 类型化请求/响应、自动区域检测、连接池、重试 | | storagev2/uploader | 上传管理,自动选择表单上传或分片上传 | | storagev2/downloader | 下载管理,支持并发分片下载 | | storagev2/objects | 对象管理,链式 API(查询、复制、移动、删除、归档恢复等) | | storagev2/credentials | 凭证管理,CredentialsProvider 接口 | | storagev2/uptoken | 上传凭证,PutPolicy 上传策略 | | storagev2/region | 区域信息和服务端点管理 | | storagev2/apis | 低级类型化 API(自动生成) | | storage | v1 API — BucketManager、FormUploader、ResumeUploaderV2 |

其他云服务

| 包 | 说明 | |---|---| | auth | 认证和签名(AK/SK 凭证、请求签名、回调验证) | | cdn | CDN 加速(刷新、预取、流量/带宽查询、日志下载、时间戳防盗链) | | pili | 直播服务(Hub/Stream 管理、推流/播放 URL 生成、统计数据) | | rtc | 实时音视频(RoomToken 生成、房间管理) | | sms | 短信服务(发送短信、签名/模板管理) | | qvs | 视频监控(GB/T 28181 设备管理、流管理、录制、截图) | | linking | IoT 设备联网(设备管理、设备密钥、点播/直播) | | iam | 身份与访问管理(子账号、用户组、权限策略) | | media | 多媒体数据处理(持久化处理触发和查询) | | audit | 审计日志(账号操作审计日志查询) | | sandbox | 沙箱服务(沙箱生命周期管理、文件操作、命令执行、模板) |

基础设施

| 包 | 说明 | |---|---| | client | 底层 HTTP 客户端 | | storagev2/http_client | storagev2 HTTP 客户端和通用选项 | | reqid | 请求 ID 传递 | | conf | SDK 全局配置 |

示例

examples/ 目录包含各功能模块的示例代码:

  • 对象存储:表单上传、断点续传、文件管理(stat/copy/move/delete/fetch)、列举文件、异步抓取、下载
  • CDN:刷新、预取、流量/带宽查询、日志下载、时间戳防盗链
  • 多媒体处理:持久化数据处理(pfop)
  • 实时音视频:RTC 房间管理
  • 沙箱:创建、生命周期管理、文件操作、命令执行、模板管理

文档

许可证

MIT

Chat with me