全部文档
当前文档

暂无内容

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

文档中心

创建批量处理任务(Go)

最近更新时间:2026-07-09 17:29:20

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

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

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>", "")
    // 创建KS3客户端,更多配置项请查看初始化文档
    client := s3.New(&aws.Config{
        Credentials: cre,                          // 访问凭证
        Region:      "BEIJING",                    // 访问地域
        Endpoint:    "ks3-cn-beijing.ksyuncs.com", // 访问域名
    })
    // 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),
    //   },
    //}

    // 6. 新建打包压缩操作
    //createJobInput.CreateJobRequest.Operation = &s3.JobOperation{
    //    KS3CompressObject: &s3.KS3CompressObject{
    //        Format:      aws.String("zip"),
    //        IgnoreError: aws.Boolean(true),
    //        Output: &s3.CompressOutput{
    //            Bucket:     aws.String("krn:ksc:ks3:::test-bucket"),
    //            Prefix:     aws.String("output/"),
    //            ObjectName: aws.String("archive.zip"),
    //        },
    //    },
    //}

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

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

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

纯净模式

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