最近更新时间: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。
纯净模式
