遷移工具使用方法
遷移工具支援将S3,OSS, Qiniu,檔案清單等檔案遷移到COS對象存儲。工具隻支援在linux/macos下運作,系統自帶的Python版本在2.6以上。
系統依賴
工具運作平台為*nix,需要有Python2.7及以上環境,同時機器應該安裝pip,gcc與python-dev。您可以使用系統自帶的包管理器安裝相關依賴。
在centos上,使用如下指令安裝:
1 | sudo yum install python-pip python-devel gcc gcc-c++ libxml2-devel |
在ubuntu/debian上,使用如下指令安裝:
sudo apt-get install python-pip python-dev gcc gcc-c++ libxml2-devel
安裝方法
推薦使用pip安裝,安裝pip的方法,可以參考官網或者使用apt/yum等包管理工具安裝python-pip包。
pip install -U cos_migrate_tool
執行完上述指令後,可以嘗試使用如下指令檢測是否安裝成功。
cos_migrate_tool -h
解除安裝方法
執行如下指令:
pip uninstall cos_migrate_tool
使用方法
在安裝成功後,系統會有一個可執行指令 cos_migrate_tool,之後的遷移過程都是使用該指令。執行指令的方式如下:
cos_migrate_tool -c /path/to/your/conf
配置檔案自行編寫,模版參考下章内容。在配置檔案中,需要配置一個工作目錄,之後遷移過程中産生的臨時檔案都在放置在該目錄,請保證目錄空間足夠大,如果并行執行多個遷移任務,推薦使用不同的目錄。
在遷移過程中,你可以檢視你設定的工作目錄下面的fail_file.txt來檢視遷移失敗的檔案清單。
雲伺服器、雲資料庫方案、網絡安全防護優選
配置檔案
配置檔案模闆,common 部配置設定置基本配置,workspace是上述的工作目錄。source部配置設定置資料源的資訊,如果你想遷移oss到cos,該部分就是配置oss的屬性。destination部配置設定置cos屬性。
!! 配置檔案請删除注釋文字,即 #注釋 部分,空白模闆參考 連結
[common]
workspace=/tmp/tmp6 # 工作目錄threads=20 # 工作線程數,如果不配置,則為10線程[source]
type=oss
accesskeyid=
accesskeysecret=
bucket=
endpoint=
[destination]
type=cosv4
region=shanghai
accesskeyid=
appid=
accesskeysecret=
bucket=sdktest
遷移OSS
[common]
workspace=/tmp/tmp6
[source]
type=oss
accesskeyid= # oss accesskey id
accesskeysecret= # ossaccesskey secret
bucket= # 要遷移的bucket名
endpoint= #oss 的endpoint,例如oss-cn-beijing.aliyuncs.com
[destination]
type=cosv4
region=shanghai # cos 的 region,如shanghai, guangzhou
accesskeyid= # cos 的 secretid
appid= # cos 的 appid
accesskeysecret= #cos 的 secretkey
bucket=sdktest # cos 的 bucket
prefix_dir=/dir21/ # cos 的目錄,遷移的檔案都會位于該目錄下,不配置該項則遷移到根目錄overwrite=true #覆寫cos上已有的同名檔案,如果不需要,請删除該行
遷移qiniu
[common]
workspace=/tmp/tmp11
[source]
type=qiniu
accesskeyid= # qiniu 的 accesskeyid
accesskeysecret= # qiniu 的 accesskeysecret
bucket= # 要遷移的qiniu的bucket
domain_url= # qiniu 的下載下傳域名
prefix=dir1 # 要遷移的目錄,如果要遷移整個bucket,删除此行
[destination]
type=cosv4
region=shanghai # cos 的 region,如shanghai, guangzhou
accesskeyid= # cos 的 secretid
appid= # cos 的 appid
accesskeysecret= # cos 的 secretkey
bucket=sdktest # cos 的 bucket
prefix_dir=/dir21/ # cos 的目錄,遷移的檔案都會位于該目錄下,不配置該項則遷移到根目錄
overwrite=true # 是否覆寫上傳,如果不需要,删除此行
遷移S3
[common]
workspace=/tmp/tmp21
[source]
type=s3
accesskeyid= # s3 的 accesskey id
accesskeysecret= # s3 的 accesskey secret
bucket= # s3 的要遷移的bucket名
prefix=dir1 # s3 的要遷移的目錄,如果要遷移整個bucket,删除此行
[destination]
type=cosv4
region=shanghai
accesskeyid=
appid=
accesskeysecret=
bucket=
遷移清單檔案
[common]
workspace=
[source]
type=url
url_list_file=/tmp/urllist.txt # 要遷移的檔案url清單檔案,檔案每一行為一個完整的url
timeout=3 # http請求的逾時時間
[destination]
type=cosv4
region=
accesskeyid=
appid=
accesskeysecret=
bucket=
遷移COSv3
[common]
workspace=
[source]
type=cosv3
accesskeyid=
appid=
accesskeysecret=
bucket= # http請求的逾時時間
[destination]
type=cosv4
region=
accesskeyid=
appid=
accesskeysecret=
bucket=
COS v3 遷移到COSv4
[common]
workspace=
[source]
type=cosv3
accesskeyid=
appid=
accesskeysecret=
bucket=
[destination]
type=cosv4
region=
accesskeyid=
appid=
accesskeysecret=
bucket=
COS v4 遷移到COSv4
[common]
workspace=
[source]
type=cosv4
accesskeyid=
region=
appid=
accesskeysecret=
bucket=
prefix_dir=/foo # cos 的目錄,遷移的檔案都會位于該目錄下,不配置該項則遷移到根目錄
[destination]
type=cosv4
region=
accesskeyid=
appid=
accesskeysecret=
bucket=
常見錯誤與解決辦法
1. pip指令不存在。使用apt installpython-pip 或者yum installpython-pip 指令安裝PIP。
2. 使用pip安裝遷移工具不成功。嘗試執行sudo pipinstall cos_migrate_tool。
3. 提示找不到argparse,使用pip安裝sudo pipinstall argparse
4. 對于一直遷移不成功的檔案,可能是COS上有同名殘損檔案,可以嘗試指定 overwrite=true 參數來覆寫。
5. 遷移前工具會先判斷檔案是否已經在COS上,提示檔案不存在的錯誤的正常的
雲伺服器、雲資料庫方案、網絡安全防護優選
本技術文轉自 “藍葉子_架構” 部落格http://dellinger.blog.51cto.com/12445009/1971596