全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

创建批量处理任务(Go)

最近更新时间:2026-01-22 14:37:31

有关批量处理的更多详情请参见文档:批量处理

以下代码用于创建批量处理任务:

package main

import (
    "fmt"
    "github.com/ks3sdklib/aws-sdk-go/aws"
    "github.com/ks3sdklib/aws-sdk-go/aws/awsutil"
    "github.com/ks3sdklib/aws-sdk-go/aws/credentials"
    "github.com/ks3sdklib/aws-sdk-go/service/s3"
)

func main() {
    // 创建访问凭证,请将<AccessKeyID>与<SecretAccessKey>替换成真正的值
    cre := credentials.NewStaticCredentials("<AccessKeyID>", "<SecretAccessKey>", "")
    // 创建S3Client,更多配置项请查看Go-SDK初始化文档
    client := s3.New(&aws.Config{
        Credentials: cre,                          // 访问凭证
        Region:      "BEIJING",                    // 填写您的Region
        Endpoint:    "ks3-cn-beijing.ksyuncs.com", // 填写您的Endpoint
    })
    // 1. 新建设置对象ACL操作,设置预定义ACL
    createJobInput := &s3.CreateJobInput{
        CreateJobRequest: &s3.CreateJobRequest{
            Description: aws.String("this-is-a-test-job"),
            Priority:    aws.Long(1),
            Operation: &s3.JobOperation{
                KS3PutObjectAcl: &s3.KS3PutObjectAcl{
                    CannedAccessControlList: aws.String(s3.ACLPublicRead),
                },
            },
            Manifest: &s3.JobManifest{
                Location: &s3.ManifestLocation{
                    Filters: []*s3.LocationFilter{
                        {
                            Bucket:   aws.String("krn:ksc:ks3:::test-bucket"),
                            Prefixes: []string{"prefix1/"},
                        },
                    },
                },
                Spec: &s3.ManifestSpec{
                    Format: aws.String("KS3BatchOperations_Bucket_V1"),
                },
            },
            Report: &s3.JobReport{
                Bucket:      aws.String("krn:ksc:ks3:::test-bucket"),
                Prefix:      aws.String("result/"),
                Enabled:     aws.Boolean(true),
                ReportScope: aws.String("FailedTasksOnly"),
            },
        },
    }

    // 2. 新建设置对象ACL操作,设置自定义ACL
    //createJobInput.CreateJobRequest.Operation = &s3.JobOperation{
    //    KS3PutObjectAcl: &s3.KS3PutObjectAcl{
    //        AccessControlList: &s3.JobAccessControlList{
    //            Grants: []*s3.JobGrant{
    //                {
    //                    Grantee:    aws.String("12345678"),
    //                    Permission: aws.String("READ"),
    //                },
    //            },
    //        },
    //    },
    //}

    // 3. 新建解冻操作
    //createJobInput.CreateJobRequest.Operation = &s3.JobOperation{
    //    KS3RestoreObject: &s3.KS3RestoreObject{
    //        StorageClass: aws.String(s3.StorageClassArchive),
    //        Days:         aws.Long(7),
    //    },
    //}

    // 4. 新建删除操作
    //createJobInput.CreateJobRequest.Operation = &s3.JobOperation{
    //    KS3DeleteObject: &s3.KS3DeleteObject{},
    //}

    // 5. 新建同城冗余转换操作
    //createJobInput.CreateJobRequest.Operation = &s3.JobOperation{
    //    KS3PutObjectDataRedundancyTransition: &s3.KS3PutObjectDataRedundancyTransition{
    //        DataRedundancyType: aws.String(s3.DataRedundancyTypeZRS),
    //    },
    //}

    // 创建批量处理任务
    resp, err := client.CreateJob(&s3.CreateJobInput{
        CreateJobRequest: createJobInput.CreateJobRequest, // 批量处理请求配置,必填
    })
    if err != nil {
        panic(err)
    }
    fmt.Println("结果:\n", awsutil.StringValue(resp))
}

创建批量处理任务相关API请参见文档:CreateJob

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈