You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们
导航

资源管理

最近更新时间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)
	}
}

获取禁用 URL 列表详情

本接口支持获取近 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)
	}
}

数据抓取(Fetch)

以下内容用于指定公网可访问的待迁移资源 URL 以及迁移目标服务 ID,来对资源进行迁移,并得到迁移后的资源 URI 等信息,并获取异步抓取任务详情。

具体接口参数和返回字段请参考 FetchImageUrlGetUrlFetchTask。我们同时在 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)
		}
}