云手机实例管理
引导式阅读
Go
云手机实例管理
作者
C***
上架时间
2023-11-14 06:55:37

场景介绍

基于华为云Go SDK,管理云手机实例。

具体操作包含:更新云手机名称;重置云手机;重启云手机;导出云手机数据;恢复云手机数据等

前提条件

1.已注册 华为云,并完成实名认证

2.获取华为云开发工具包(SDK),您也可以查看安装Go SDK。

3.已获取华为云账号对应的Access Key(AK)和Secret Access Key(SK)。请在华为云控制台“我的凭证 > 访问密钥”页面上创建和查看您的AK/SK。具体请参见访问密钥

4.已获取华为云账号对应的Endpoint和Project Id。Endpoint是华为云各服务应用区域和各服务的终端节点,详情请查看地区和终端节点 ;Project ID是云服务所在项目ID,根据你想操作的项目所属区域选择对应的项目ID。

5.已具备开发环境,支持Go 1.16及其以上版本。

版本说明

您可以通过加入相应的依赖项获取和安装SDK。

go get -u github.com/huaweicloud/huaweicloud-sdk-go-v3

代码示例

package main import ( coreConfig "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/config" "fmt" "os" coreBasic "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" cph "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cph/v1" cphModel "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cph/v1/model" ) type CloudPhoneManagement struct{} func NewCloudPhoneManagementDefault() CloudPhoneManagement { c := CloudPhoneManagement{} return c } func main() { // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak := os.Getenv("HUAWEICLOUD_SDK_AK") sk := os.Getenv("HUAWEICLOUD_SDK_SK") endpoint := "{endpoint}" projectId := "{project id}" auth := coreBasic.NewCredentialsBuilder().WithAk(ak).WithSk(sk).WithProjectId(projectId).Build() config := coreConfig.DefaultHttpConfig() config.WithIgnoreSSLVerification(true) client := *cph.NewCphClient(cph.CphClientBuilder(). WithCredential(auth). WithEndpoint(endpoint). WithHttpConfig(config). Build()) // 修改云手机名称 cloudPhoneManagementUpdatePhoneName(client) // 重置云手机 cloudPhoneManagementResetCloudPhone(client) // 重启云手机 cloudPhoneManagementRestartCloudPhone(client) // 批量导出云手机数据 cloudPhoneManagementBatchExportCloudPhoneData(client) // 批量恢复数据到云手机 cloudPhoneManagementBatchImportCloudPhoneData(client) } func cloudPhoneManagementUpdatePhoneName(client cph.CphClient) { request := cphModel.UpdatePhoneNameRequest{} request.PhoneId = "{phone_id}" body := cphModel.UpdatePhoneNameRequestBody{} body.PhoneName = "{phone_name}" request.Body = &body response, err := client.UpdatePhoneName(&request) if err != nil { fmt.Println(err) return } fmt.Println(response.String()) } func cloudPhoneManagementResetCloudPhone(client cph.CphClient) { request := cphModel.ResetCloudPhoneRequest{} body := cphModel.ResetRestartRequestBody{} phones := make([]cphModel.ResetRestartRequestBodyPhones, 0) resetRestartRequestBodyPhonesPropertyParam := "{property}" phones = append(phones, cphModel.ResetRestartRequestBodyPhones{ PhoneId: "{phone_id}", Property: &resetRestartRequestBodyPhonesPropertyParam, }, ) body.Phones = phones resetRestartRequestBodyImageIdParam := "{image_id}" body.ImageId = &resetRestartRequestBodyImageIdParam request.Body = &body response, err := client.ResetCloudPhone(&request) if err != nil { fmt.Println(err) return } fmt.Println(response.String()) } func cloudPhoneManagementRestartCloudPhone(client cph.CphClient) { request := cphModel.RestartCloudPhoneRequest{} body := cphModel.ResetRestartRequestBody{} phones := make([]cphModel.ResetRestartRequestBodyPhones, 0) resetRestartRequestBodyPhonesPropertyParam1 := "{property}" phones = append(phones, cphModel.ResetRestartRequestBodyPhones{ PhoneId: "{phone_id}", Property: &resetRestartRequestBodyPhonesPropertyParam1, }, ) body.Phones = phones resetRestartRequestBodyImageIdParam1 := "{image_id}" body.ImageId = &resetRestartRequestBodyImageIdParam1 request.Body = &body response, err := client.RestartCloudPhone(&request) if err != nil { fmt.Println(err) return } fmt.Println(response.String()) } func cloudPhoneManagementBatchExportCloudPhoneData(client cph.CphClient) { request := cphModel.BatchExportCloudPhoneDataRequest{} body := cphModel.BatchExportCloudPhoneDataRequestBody{} listStorageInfosExcludeFiles := make([]string, 0) listStorageInfosExcludeFiles = append(listStorageInfosExcludeFiles, "{exclude_files}") listStorageInfosIncludeFiles := make([]string, 0) listStorageInfosIncludeFiles = append(listStorageInfosIncludeFiles, "{include_files}") storageInfos := make([]cphModel.BatchExportCloudPhoneDataRequestBodyStorageInfos, 0) storageInfos = append(storageInfos, cphModel.BatchExportCloudPhoneDataRequestBodyStorageInfos{ PhoneId: "{phone_id}", IncludeFiles: listStorageInfosIncludeFiles, ExcludeFiles: &listStorageInfosExcludeFiles, BucketName: "{bucket_name}", ObjectPath: "{object_path}", }, ) body.StorageInfos = storageInfos request.Body = &body response, err := client.BatchExportCloudPhoneData(&request) if err != nil { fmt.Println(err) return } fmt.Println(response.String()) } func cloudPhoneManagementBatchImportCloudPhoneData(client cph.CphClient) { request := cphModel.BatchImportCloudPhoneDataRequest{} body := cphModel.BatchImportCloudPhoneDataRequestBody{} restoreInfos := make([]cphModel.BatchImportCloudPhoneDataRequestBodyRestoreInfos, 0) restoreInfos = append(restoreInfos, cphModel.BatchImportCloudPhoneDataRequestBodyRestoreInfos{ PhoneId: "{phone_id}", BucketName: "{bucket_name}", ObjectPath: "{object_path}", }, ) body.RestoreInfos = restoreInfos request.Body = &body response, err := client.BatchImportCloudPhoneData(&request) if err != nil { fmt.Println(err) return } fmt.Println(response.String()) }

您可以在API Explorer中直接运行调试该接口。

修订记录

发布日期 文档版本 修订说明
2022-08-20 1.0 文档首次发布