遷移工具使用方法html
遷移工具支持將S3, OSS, Qiniu,文件列表等文件遷移到COS對象存儲。工具只支持在 linux/macos 下運行,系統自帶的Python版本在2.6以上。python
系統依賴linux
工具運行平臺爲*nix,須要有Python2.7及以上環境,同時機器應該安裝pip, gcc與python-dev。您能夠使用系統自帶的包管理器安裝相關依賴。c++
在centos上,使用以下命令安裝:git
1github |
sudo yum install python-pip python-devel gcc gcc-c++ libxml2-devel數據庫 |
在ubuntu/debian上,使用以下命令安裝:macos
sudo apt-get install python-pip python-dev gcc gcc-c++ libxml2-develubuntu
安裝方法centos
推薦使用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= # oss accesskey 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 遷移到 COS v4
[common]
workspace=
[source]
type=cosv3
accesskeyid=
appid=
accesskeysecret=
bucket=
[destination]
type=cosv4
region=
accesskeyid=
appid=
accesskeysecret=
bucket=
COS v4 遷移到 COS v4
[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 install python-pip 或者 yum install python-pip 命令安裝PIP。
2. 使用pip安裝遷移工具不成功。嘗試執行 sudo pip install cos_migrate_tool。
3. 提示找不到argparse,使用pip安裝 sudo pip install argparse
4. 對於一直遷移不成功的文件,多是COS上有同名殘損文件,能夠嘗試指定 overwrite=true 參數來覆蓋。
5. 遷移前工具會先判斷文件是否已經在COS上,提示文件不存在的錯誤的正常的
本技術文轉自 「藍葉子_架構」 博客http://dellinger.blog.51cto.com/12445009/1971596