全部文档
当前文档

暂无内容

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

文档中心

高级复制文件(Python)

最近更新时间:2025-06-18 20:51:54

高级复制支持同Region或跨Region的存储空间之间复制文件,用户无需关心文件大小,SDK 会自动根据文件大小进行简单复制或分块复制。

Python SDK从V1.13.0版本开始支持高级复制。

同Region高级复制

同Region高级复制示例如下所示:

from ks3.connection import Connection

# 金山云主账号AccessKey拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号账号进行API访问或日常运维,请登录https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
# 通过指定host(Endpoint),您可以在指定的地域创建新的存储空间。host(Endpoint) 以北京为例,其它Region请按实际情况填写。
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='<YOUR_REGION_ENDPOINT>')

# 获取源存储空间实例
src_bucket = c.get_bucket('<yourSrcBucketName>')
# 获取目的存储空间实例
dest_bucket = c.get_bucket('<yourDestBucketName>')
# 获取源key对象
src_key = src_bucket.new_key('<source key name>')
# 获取目的key对象
dest_key = dest_bucket.new_key('<destination key name>')
headers = {}
ret = dest_key.copy_file(
    # 设置源key对象
    src_key,
    # 设置分块复制时的块大小
    part_size=100 * 1024 * 1024,
    # 设置并发线程数
    threads_num=3,
    # 设置是否断点续传,默认关闭
    resumable=False,
    # 设置断点续传文件名,如果不指定,则使用默认路径(md5[src_bucket/src_key_dest_bucket/dest_key] + '.ks3resume')
    resumable_filename=None,
    # 设置headers
    headers=headers,
    # 设置是否复制源key的元数据
    copy_src_metadata=True,
    # 设置是否复制源key的标签
    copy_src_tagging=True,
)
# 打印结果信息
# 如果是分块复制,这里的request_id是complete_upload请求的request_id
print(ret.request_id)
print(ret.crc64ecma)
print(ret.etag)

跨Region高级复制

跨Region高级复制示例如下所示:

from ks3.connection import Connection

# 金山云主账号AccessKey拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号账号进行API访问或日常运维,请登录https://uc.console.ksyun.com/pro/iam/#/user/list创建子账号。
# 通过指定host(Endpoint),您可以在指定的地域创建新的存储空间。host(Endpoint) 以北京为例,其它Region请按实际情况填写。
# 创建源连接对象(host填写源桶所在endpoint)
src_conn = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='<YOUR_REGION_ENDPOINT_A>')
# 创建目的连接对象(host填写目的桶所在endpoint)
dest_conn = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='<YOUR_REGION_ENDPOINT_B>')

# 获取源存储空间实例
src_bucket = src_conn.get_bucket('<yourSrcBucketName>')
# 获取目的存储空间实例
dest_bucket = dest_conn.get_bucket('<yourDestBucketName>')
# 获取源key对象
src_key = src_bucket.new_key('<source key name>')
# 获取目的key对象
dest_key = dest_bucket.new_key('<destination key name>')
headers = {}
ret = dest_key.across_region_copy_file(
    # 设置源key对象
    src_key,
    # 设置分块复制时的块大小
    part_size=100 * 1024 * 1024,
    # 设置并发线程数
    threads_num=3,
    # 设置是否断点续传,默认关闭
    resumable=False,
    # 设置断点续传文件名,如果不指定,则使用默认路径(md5[src_bucket/src_key_dest_bucket/dest_key] + '.ks3resume')
    resumable_filename=None,
    # 设置headers
    headers=headers,
    # 设置是否复制源key的元数据
    copy_src_metadata=True,
    # 设置是否复制源key的标签
    copy_src_tagging=True,
)
# 打印结果信息
# 如果是分块复制,这里的request_id 是 complete_upload 请求的request_id
print(ret.request_id)
print(ret.crc64ecma)
print(ret.etag)

跨Region高级复制功能内部实现为从源桶下载,再上传至目标桶。

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

纯净模式

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