最近更新时间:2023.08.17 10:33:53
首次发布时间:2021.02.23 10:42:26
阅读本文,您可以快速了解资源管理 Golang SDK 的使用方法。
说明
以下 SDK 示例中仅展示了部分参数,您可以在方法名中查看该接口支持的全部参数及取值。
调用接口前请先完成初始化,具体操作请参考初始化。
以下内容用于通过指定服务 ID 和上传文件,来获取上传成功的资源 URI。
UploadImages 接口内部依次调用了 ApplyImageUpload 和 CommitImageUpload 两个 OpenAPI 来实现完整文件上传能力。我们同时在 GitHub 上提供了参考示例。
具体示例如下所示:
package main import ( "fmt" "os" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/imagex" ) // 上传文件 func main() { // 默认 ImageX 实例为 `cn-north-1`,如果您想使用其他区域的实例,请使用 `imagex.NewInstanceWithRegion(区域名)` 显式指定区域 instance := imagex.DefaultInstance instance.SetCredential(base.Credentials{ AccessKeyID: "ak", SecretAccessKey: "sk", }) params := &imagex.ApplyUploadImageParam{ ServiceId: "service id", // 服务 ID // StoreKeys: []string{"example.jpg"}, // 指定文件存储名 Overwrite: false, //是否进行上传覆盖 } // 读取文件 dat, err := os.ReadFile("image file") if err != nil { fmt.Printf("read file from %s error %v", "", err) os.Exit(-1) } // 上传文件 resp, err := instance.UploadImages(params, [][]byte{dat}) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %v", resp) } }
以下内容用于通过指定服务 ID 以及已上传的文件 URI,来获取上传文件的详细信息,如:文件修改时间和文件字节数等。
具体接口参数和返回字段请参考 GetImageUploadFile。我们同时在 GitHub 上提供了参考示例。
具体示例如下所示:
package main import ( "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/imagex" ) // 获取文件信息 func main() { // 默认 ImageX 实例为 `cn-north-1`,如果您想使用其他区域的实例,请使用 `imagex.NewInstanceWithRegion(区域名)` 显式指定区域 instance := imagex.DefaultInstance instance.SetCredential(base.Credentials{ AccessKeyID: "ak", SecretAccessKey: "sk", }) params := &imagex.GetImageUploadFileParam{ ServiceId: "service id", // 服务 ID StoreUri: "store uri", // 文件的 Store URI } resp, err := instance.GetImageUploadFile(params) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %v", resp) } }
以下内容用于通过指定服务 ID,获取当前服务下的所有的上传文件信息。
具体接口参数和返回字段请参考 GetImageUploadFiles。我们同时在 GitHub 上提供了参考示例。
具体示例如下所示:
package main import ( "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/imagex" ) // 获取文件列表 func main() { // 默认 ImageX 实例为 `cn-north-1`,如果您想使用其他区域的实例,请使用 `imagex.NewInstanceWithRegion(区域名)` 显式指定区域 instance := imagex.DefaultInstance instance.SetCredential(base.Credentials{ AccessKeyID: "ak", SecretAccessKey: "sk", }) params := &imagex.GetImageUploadFilesParam{ ServiceId: "service id", // 服务 ID } resp, err := instance.GetImageUploadFiles(params) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %v", resp) } }
以下内容用于通过指定服务 ID 以及需要删除的文件 URI 列表,来删除指定的文件。
具体接口参数和返回字段请参考 DeleteImageUploadFiles。我们同时在 GitHub 上提供了参考示例。
具体示例如下所示:
package main import ( "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/imagex" ) // 删除文件 func main() { // 默认 ImageX 实例为 `cn-north-1`,如果您想使用其他区域的实例,请使用 `imagex.NewInstanceWithRegion(区域名)` 显式指定区域 instance := imagex.DefaultInstance instance.SetCredential(base.Credentials{ AccessKeyID: "ak", SecretAccessKey: "sk", }) serviceId := "imagex service id" // 服务 ID uris := []string{"image uri 1"} // 想要删除的文件列表 resp, err := instance.DeleteImages(serviceId, uris) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
本接口支持在指定服务 ID 、待更改操作的文件和文件操作类型(刷新 URL、刷新目录、预热 URL、禁用 URL 和解禁 URL)后创建相关文件管理任务。
具体接口参数和返回字段请参考 CreateImageContentTask。我们同时在 GitHub 上提供了参考示例。
具体示例如下所示:
package main import ( "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/imagex" ) // 刷新/预热/禁用/解禁 // 创建刷新/预热/禁用/解禁任务 func main() { // 默认 ImageX 实例为 `cn-north-1`,如果您想使用其他区域的实例,请使用 `imagex.NewInstanceWithRegion(区域名)` 显式指定区域 instance := imagex.DefaultInstance instance.SetCredential(base.Credentials{ AccessKeyID: "aK", SecretAccessKey: "sk", }) resp, err := instance.CreateImageContentTask(&imagex.CreateImageContentTaskReq{ ServiceId: "", TaskType: "block_url", Urls: []string{}, // 需要处理的 URL 列表(可以通过浏览器访问的完整 URL) }) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %v", resp) } }
本接口支持查询近 30 天内刷新/预热/禁用/解禁任务详情列表。
具体接口参数和返回字段请参考 GetImageContentTaskDetail。我们同时在 GitHub 上提供了参考示例。
具体示例如下所示:
package main import ( "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/imagex" ) // 刷新/预热/禁用/解禁 // 获取任务详情 func main() { // 默认 ImageX 实例为 `cn-north-1`,如果您想使用其他区域的实例,请使用 `imagex.NewInstanceWithRegion(区域名)` 显式指定区域 instance := imagex.DefaultInstance instance.SetCredential(base.Credentials{ AccessKeyID: "ak", SecretAccessKey: "sk", }) resp, err := instance.GetImageContentTaskDetail(&imagex.GetImageContentTaskDetailReq{ ServiceId: "", TaskType: "refresh_url", StartTime: 0, EndTime: 2147483647, }) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %v", resp) } }
本接口支持获取近 30 天内的已被禁用的 URL 列表详情,若 URL 解禁成功,则无法被查询。
具体接口参数和返回字段请参考 GetImageContentBlockList。我们同时在 GitHub 上提供了参考示例。
具体示例如下所示:
package main import ( "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/imagex" ) // 刷新/预热/禁用/解禁 // 获取禁用 URL 列表详情 func main() { // 默认 ImageX 实例为 `cn-north-1`,如果您想使用其他区域的实例,请使用 `imagex.NewInstanceWithRegion(区域名)` 显式指定区域 instance := imagex.DefaultInstance instance.SetCredential(base.Credentials{ AccessKeyID: "aK", SecretAccessKey: "sk", }) resp, err := instance.GetImageContentBlockList(&imagex.GetImageContentBlockListReq{ ServiceId: "", StartTime: 0, EndTime: 2147483647, }) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %v", resp) } }
以下内容用于指定公网可访问的待迁移资源 URL 以及迁移目标服务 ID,来对资源进行迁移,并得到迁移后的资源 URI 等信息,并获取异步抓取任务详情。
具体接口参数和返回字段请参考 FetchImageUrl和 GetUrlFetchTask。我们同时在 GitHub 上提供了参考示例。
具体示例如下所示:
package main import ( "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/imagex" ) // 单资源 URL 数据迁移 func main() { // 默认 ImageX 实例为 `cn-north-1`,如果您想使用其他区域的实例,请使用 `imagex.NewInstanceWithRegion(区域名)` 显式指定区域 instance := imagex.DefaultInstance instance.SetCredential(base.Credentials{ AccessKeyID: "ak", SecretAccessKey: "sk", }) req := &imagex.FetchUrlReq{ Url: "https://example.com/example.jpg", // 待迁移的文件 ServiceId: "service id", // 想将文件迁移到哪一个服务 StoreKey: "store key", // 迁移后的存储名为 // Async: true, } resp, err := instance.FetchImageUrl(req) if err != nil { fmt.Printf("error %v\n", err) } else { fmt.Printf("success %v\n", resp) } if req.Async { req2 := &imagex.GetUrlFetchTaskReq{ Id: resp.TaskId, ServiceId: req.ServiceId, } resp, err := instance.GetUrlFetchTask(req2) if err != nil { fmt.Printf("error %v\n", err) } else { fmt.Printf("success %v\n", resp) } } }
本接口支持通过指定压缩文件/文件夹及其他配置创建异步压缩任务,系统将执行压缩打包处理并将压缩包存储至指定服务内。
具体接口参数和返回字段请参考 CreateImageCompressTask。我们同时在 GitHub 上提供了参考示例。
具体示例如下所示:
package main import ( "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/imagex" ) // ZIP压缩打包文件 func main() { // 默认 ImageX 实例为 `cn-north-1`,如果您想使用其他区域的实例,请使用 `imagex.NewInstanceWithRegion(区域名)` 显式指定区域 instance := imagex.DefaultInstance instance.SetCredential(base.Credentials{ AccessKeyID: "xx", SecretAccessKey: "xx", }) resp, err := instance.CreateImageCompressTask(&imagex.CreateImageCompressTaskReq{ ServiceId: "xx", FileList: []imagex.UncompressFileInfo{ { Url: "xx", // 需要处理的 URL Alias: "", Folder: "", }, }, IndexFile: "", Output: "", Callback: "", ZipMode: 0, }) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %v", resp) } /* tresp, err := instance.GetImageCompressTaskInfo(&imagex.GetImageCompressTaskInfoReq{ ServiceId: "xx", TaskId: "xx", }) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %v", tresp) } */ }
本接口支持通过指定服务 ID 和异步压缩任务 ID 获取压缩任务详情。
具体接口参数和返回字段请参考 GetCompressTaskInfo。我们同时在 GitHub 上提供了参考示例。
具体示例如下所示:
package main import ( "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/imagex" ) func main() { // 默认 ImageX 实例为 `cn-north-1`,如果您想使用其他区域的实例,请使用 `imagex.NewInstanceWithRegion(区域名)` 显式指定区域 instance := imagex.DefaultInstance instance.SetCredential(base.Credentials{ AccessKeyID: "xx", SecretAccessKey: "xx", }) resp, err := instance.GetImageCompressTaskInfo(&imagex.GetImageCompressTaskInfoReq{ ServiceId: "xx", TaskId: "xx", }) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %v", resp) } }