2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 如何使用rclone从AWS S3迁移到IBM COS - part 2 - 同步腾讯云对象存储

如何使用rclone从AWS S3迁移到IBM COS - part 2 - 同步腾讯云对象存储

时间:2024-06-15 13:27:17

相关推荐

如何使用rclone从AWS S3迁移到IBM COS - part 2 - 同步腾讯云对象存储

此文章与“如何使用rclone从AWS S3迁移到IBM COS - part 1”为连载,请先阅读part1,了解如何安装配置rclone工具。

(/koolincn/article/details/116521882)

这里是接着part1之后,再去配置腾讯云对象存储,实现多个存储桶之间的数据迁移和备份。

配置腾讯云对象存储

进入腾讯云对象存储管理页面:

记下存储桶名称:

转到用户访问管理的密钥管理,查看或创建API密钥:

记下Secretid与key:

编辑rclone.conf文件,添加如下内容:

[tencent-cos]type = s3 # s3后端存储类型provider = Otherenv_auth = false # 不从环境变量中获取密钥access_key_id = AKIDXXXXXXXXXXXXXX # 腾讯云的secretIdsecret_access_key = YYYYYYYYYYYYYYYYYYY # 腾讯云的secretKeyendpoint = cos.ap- # COS的域名

腾讯云对象存储端点信息可在如下位置查看:

至此,我们在Rclone中配置了IBM COS的连接,AWS S3的连接和腾讯云的对象存储的连接, 我们可以在安装有rclone的客户端执行几个对象存储之间的数据同步和传输。有关如何使用rclone,请查阅rclone的相关文档。

总结:

除了上述方式以外,IBM COS同时也支持很多s3兼容工具,类似cyberduck,tntdrive, cloudberry, s3browser,包括命令行工具aws s3cli等, 而且如果客户有浏览器的工作站,无需安装任何工具,自带的免费Aspera浏览器插件进行公网跨区域传输文件,相对三方工具传送质量和速度都很有保障

ICOS API

IBM COS提供非常完整的S3 API,常见开发语言比如java, python, node.js, GO 等都有对应的SDK工具包,开发人员可轻松上手

/docs/cloud-object-storage?topic=cloud-object-storage-sdk-about

访问IBM github站点安装COS python SDK,/IBM/ibm-cos-sdk-python,下面是IBM在线文档提供的code样本,只用把其中的cos端点,api key以及服务的 CRN匹配已有环境的设定即可。

import ibm_boto3

from ibm_botocore.client import Config, ClientError

#Constants for IBM COS values

COS_ENDPOINT = “https://s3.private.us-south.cloud-object-storage.appdomain.cloud”

COS_API_KEY_ID = “xxx”

COS_INSTANCE_CRN = “xxx”

def upload_large_file(bucket_name, item_name, file_path):

print(“Starting large file upload for {0} to bucket: {1}”.format(item_name, bucket_name))

# set the chunk size to 5 MBpart_size = 1024 * 1024 * 5# set threadhold to 5 MBfile_threshold = 1024 * 1024 * 5# Create client connectioncos_cli = ibm_boto3.client("s3",ibm_api_key_id=COS_API_KEY_ID,ibm_service_instance_id=COS_INSTANCE_CRN,config=Config(signature_version="oauth"),endpoint_url=COS_ENDPOINT)# set the transfer threshold and chunk size in config settingstransfer_config = ibm_boto3.s3.transfer.TransferConfig(multipart_threshold=file_threshold,multipart_chunksize=part_size)# create transfer managertransfer_mgr = ibm_boto3.s3.transfer.TransferManager(cos_cli, config=transfer_config)try:# initiate file uploadfuture = transfer_mgr.upload(file_path, bucket_name, item_name)# wait for upload to completefuture.result()print ("Large file upload complete!")except Exception as e:print("Unable to complete large file upload: {0}".format(e))finally:transfer_mgr.shutdown()

def main()

upload_large_file(‘iso-image-bucket’, ‘100G.file’, ‘/data/100G.file’ )

ifname== “main”:

main()

执行上传,如果带宽过大,可以通过设置 part_size和file_threshold来调整传送速度

[root@centos-s3fs ~]# python upload_large_file.py

Starting large file upload for 100G.file to bucket: iso-image-bucket

Large file upload complete!

上传成功!!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。