全部文档
当前文档

暂无内容

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

文档中心

创建批量处理任务(Python)

最近更新时间:2026-06-03 21:31:35

创建批量处理任务

创建批量删除对象任务

以下代码用于创建批量删除对象任务:

from ks3.connection import Connection
from ks3.xmlParsers.batchJob import (
    JobManifest, JobManifestFilter, JobManifestLocation, JobManifestSpec,
    JobOperation, KS3DeleteObject, JobReport
)

# 金山云主账号AccessKey拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号进行API访问或日常运维,请登录https://uc.console.ksyun.com/pro/iam/#/user/list创建子账号。
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='<YOUR_REGION_ENDPOINT>')

# 创建清单过滤器
filter_obj = JobManifestFilter(
    bucket='krn:ksc:ks3:::<YOUR_BUCKET_NAME>',
    prefixes=['temp-data/']
)

# 创建清单位置和规格
location = JobManifestLocation([filter_obj])
spec = JobManifestSpec('KS3BatchOperations_Bucket_V1')
manifest = JobManifest(location, spec)

# 创建操作 - 批量删除对象
operation = JobOperation(delete_object=KS3DeleteObject())

# 创建报告配置
report = JobReport(
    enabled=True,
    bucket='krn:ksc:ks3:::<YOUR_REPORT_BUCKET_NAME>',
    prefix='delete-job-report',
    report_scope='AllTasks'
)

# 创建批量任务
result = c.create_job(
    manifest=manifest,
    operation=operation,
    priority='1',
    description='批量删除临时对象',
    report=report,
    client_request_token='unique-delete-token-345'
)

print("任务创建成功:")
print("  任务ID:", result.job_id)
print("  状态码:", result.status)

有关创建批量任务的API,请参见Create Job

KS3DeleteObject 无需额外参数,即可批量删除清单中匹配的所有对象。删除操作不可逆,请谨慎使用。

创建批量解冻任务

以下代码用于创建批量解冻任务,将指定存储空间中的归档或冷归档对象批量解冻:

from ks3.connection import Connection
from ks3.xmlParsers.batchJob import (
    JobManifest, JobManifestFilter, JobManifestLocation, JobManifestSpec,
    JobOperation, KS3RestoreObject, JobReport
)

# 金山云主账号AccessKey拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号进行API访问或日常运维,请登录https://uc.console.ksyun.com/pro/iam/#/user/list创建子账号。
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='<YOUR_REGION_ENDPOINT>')

# 创建清单过滤器
filter_obj = JobManifestFilter(
    bucket='krn:ksc:ks3:::<YOUR_BUCKET_NAME>',
    prefixes=['archive-data/']
)

# 创建清单位置
location = JobManifestLocation([filter_obj])

# 创建清单规格
spec = JobManifestSpec('KS3BatchOperations_Bucket_V1')

# 创建清单
manifest = JobManifest(location, spec)

# 创建操作 - 批量解冻
# storage_class 取值:ARCHIVE(归档)、COLD_ARCHIVE(冷归档)
# tier 取值:Standard(标准)、Expedited(加急)、Bulk(批量),仅冷归档支持 tier
operation = JobOperation(restore_object=KS3RestoreObject(days=7, tier='Standard', storage_class='COLD_ARCHIVE'))

# 创建报告配置
report = JobReport(
    enabled=True,
    bucket='krn:ksc:ks3:::<YOUR_REPORT_BUCKET_NAME>',
    prefix='restore-job-report',
    report_scope='AllTasks'
)

# 创建批量任务
result = c.create_job(
    manifest=manifest,
    operation=operation,
    priority='1',
    description='批量解冻冷归档对象',
    report=report,
    client_request_token='unique-restore-token-456'
)

print("任务创建成功:")
print("  任务ID:", result.job_id)
print("  状态码:", result.status)

有关创建批量任务的API,请参见Create Job

KS3RestoreObjectstorage_class 参数用于指定解冻的存储类型:ARCHIVE 表示归档,COLD_ARCHIVE 表示冷归档。tier 参数仅对冷归档有效,归档类型不支持指定优先级。

创建批量修改ACL任务(预设ACL)

以下代码用于创建批量修改对象ACL的任务,使用预设ACL策略:

from ks3.connection import Connection
from ks3.xmlParsers.batchJob import (
    JobManifest, JobManifestFilter, JobManifestLocation, JobManifestSpec,
    JobOperation, KS3PutObjectAcl, JobReport
)

# 金山云主账号AccessKey拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号进行API访问或日常运维,请登录https://uc.console.ksyun.com/pro/iam/#/user/list创建子账号。
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='<YOUR_REGION_ENDPOINT>')

# 创建清单过滤器
filter_obj = JobManifestFilter(
    bucket='krn:ksc:ks3:::<YOUR_BUCKET_NAME>',
    prefixes=['shared-data/']
)

# 创建清单位置和规格
location = JobManifestLocation([filter_obj])
spec = JobManifestSpec('KS3BatchOperations_Bucket_V1')
manifest = JobManifest(location, spec)

# 创建操作 - 使用预设ACL
# canned_acl 取值:private(私有)、public-read(公共读)
operation = JobOperation(put_object_acl=KS3PutObjectAcl(canned_acl='public-read'))

# 创建报告配置
report = JobReport(
    enabled=True,
    bucket='krn:ksc:ks3:::<YOUR_REPORT_BUCKET_NAME>',
    prefix='acl-job-report',
    report_scope='FailedTasksOnly'
)

# 创建批量任务
result = c.create_job(
    manifest=manifest,
    operation=operation,
    priority='1',
    description='批量修改对象ACL为公共读',
    report=report,
    client_request_token='unique-acl-token-789'
)

print("任务创建成功:")
print("  任务ID:", result.job_id)
print("  状态码:", result.status)

有关创建批量任务的API,请参见Create Job

创建批量修改ACL任务(自定义ACL)

以下代码用于创建批量修改对象ACL的任务,使用自定义ACL:

from ks3.connection import Connection
from ks3.xmlParsers.batchJob import (
    JobManifest, JobManifestFilter, JobManifestLocation, JobManifestSpec,
    JobOperation, KS3PutObjectAcl, KS3AccessControlList, KS3Grant, JobReport
)

# 金山云主账号AccessKey拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号进行API访问或日常运维,请登录https://uc.console.ksyun.com/pro/iam/#/user/list创建子账号。
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='<YOUR_REGION_ENDPOINT>')

# 创建清单
filter_obj = JobManifestFilter(
    bucket='krn:ksc:ks3:::<YOUR_BUCKET_NAME>',
    prefixes=['shared-data/']
)
location = JobManifestLocation([filter_obj])
spec = JobManifestSpec('KS3BatchOperations_Bucket_V1')
manifest = JobManifest(location, spec)

# 创建自定义授权
# permission 取值:FULL_CONTROL、READ
grant1 = KS3Grant(grantee='<YOUR_ACCOUNT_ID>', permission='READ')
grant2 = KS3Grant(grantee='<ANOTHER_ACCOUNT_ID>', permission='FULL_CONTROL')

acl = KS3AccessControlList(grants=[grant1, grant2])

# 创建操作 - 使用自定义ACL
operation = JobOperation(put_object_acl=KS3PutObjectAcl(access_control_list=acl))

# 创建报告配置
report = JobReport(
    enabled=True,
    bucket='krn:ksc:ks3:::<YOUR_REPORT_BUCKET_NAME>',
    prefix='acl-custom-job-report',
    report_scope='AllTasks'
)

# 创建批量任务
result = c.create_job(
    manifest=manifest,
    operation=operation,
    priority='1',
    description='批量自定义对象ACL',
    report=report,
    client_request_token='unique-acl-custom-token-012'
)

print("任务创建成功:")
print("  任务ID:", result.job_id)
print("  状态码:", result.status)

有关创建批量任务的API,请参见Create Job

KS3PutObjectAcl 支持两种模式:canned_acl(预设ACL)和 access_control_list(自定义ACL),两种模式不可同时使用。

创建批量冗余转换任务

以下代码用于创建批量冗余转换任务,将指定存储空间中的对象批量转换为区域冗余存储类型:

from ks3.connection import Connection
from ks3.xmlParsers.batchJob import (
    JobManifest, JobManifestFilter, JobManifestLocation, JobManifestSpec,
    JobOperation, KS3PutObjectDataRedundancyTransition, JobReport
)

# 金山云主账号AccessKey拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号进行API访问或日常运维,请登录https://uc.console.ksyun.com/pro/iam/#/user/list创建子账号。
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='<YOUR_REGION_ENDPOINT>')

# 创建清单过滤器
filter_obj = JobManifestFilter(
    bucket='krn:ksc:ks3:::<YOUR_BUCKET_NAME>',
    prefixes=['data/']
)

# 创建清单位置
location = JobManifestLocation([filter_obj])

# 创建清单规格
spec = JobManifestSpec('KS3BatchOperations_Bucket_V1')

# 创建清单
manifest = JobManifest(location, spec)

# 创建操作 - 批量冗余转换
# data_redundancy_type 取值:ZRS(区域冗余存储)
operation = JobOperation(data_redundancy_transition=KS3PutObjectDataRedundancyTransition(data_redundancy_type='ZRS'))

# 创建报告配置
report = JobReport(
    enabled=True,
    bucket='krn:ksc:ks3:::<YOUR_REPORT_BUCKET_NAME>',
    prefix='redundancy-transition-report',
    report_scope='FailedTasksOnly'
)

# 创建批量任务
result = c.create_job(
    manifest=manifest,
    operation=operation,
    priority='1',
    description='批量冗余转换',
    report=report,
    client_request_token='unique-redundancy-token-123'
)

print("任务创建成功:")
print("  任务ID:", result.job_id)
print("  状态码:", result.status)

有关创建批量任务的API,请参见Create Job

KS3PutObjectDataRedundancyTransition 支持将对象从本地冗余存储(LRS)转换为区域冗余存储(ZRS)。

创建批量异步预热任务

以下代码用于创建批量异步预热任务,对指定存储空间中的对象进行批量预热:

from ks3.connection import Connection
from ks3.xmlParsers.batchJob import (
    JobManifest, JobManifestFilter, JobManifestLocation, JobManifestSpec,
    JobOperation, KS3AsyncWarmup, JobReport
)

# 金山云主账号AccessKey拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号进行API访问或日常运维,请登录https://uc.console.ksyun.com/pro/iam/#/user/list创建子账号。
# 注意:批量异步预热需要使用数据加速专用 endpoint
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='ks3-data-acc-<YOUR_ZONE>-internal.ksyuncs.com')

# 创建清单过滤器
# 支持按存储桶和前缀筛选要处理的对象
filter_obj = JobManifestFilter(
    bucket='krn:ksc:ks3:::<YOUR_BUCKET_NAME>',
    prefixes=['cold-archive/', 'archive-data/']
)

# 创建清单位置
location = JobManifestLocation([filter_obj])

# 创建清单规格
spec = JobManifestSpec('KS3BatchOperations_Bucket_V1')

# 创建清单
manifest = JobManifest(location, spec)

# 创建操作 - 批量异步预热
operation = JobOperation(async_warmup=KS3AsyncWarmup())

# 创建报告配置
report = JobReport(
    enabled=True,
    bucket='krn:ksc:ks3:::<YOUR_REPORT_BUCKET_NAME>',
    prefix='warmup-job-report',
    report_scope='FailedTasksOnly'  # 或 'AllTasks'
)

# 创建批量任务
result = c.create_job(
    manifest=manifest,
    operation=operation,
    priority='1',
    description='批量异步预热冷归档对象',
    report=report,
    client_request_token='unique-warmup-token-123'  # 幂等性令牌,避免重复创建
)

print("任务创建成功:")
print("  任务ID:", result.job_id)
print("  状态码:", result.status)

有关创建批量任务的API,请参见Create Job

KS3AsyncWarmup 是批量异步预热操作类型,适用于将冷存储(如冷归档)中的对象批量预热到缓存层,提高访问速度。需要使用数据加速专用 endpoint(ks3-data-acc-*)。

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

纯净模式

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