OssImport是一款將數(shù)據(jù)遷移至OSS的工具,您可以將ossimport部署在本地服務(wù)器或云上ECS實(shí)例內(nèi),輕松將您本地或其它云存儲的數(shù)據(jù)遷移到OSS。支持本地、七牛、百度BOS、又拍云、騰訊云COS、金山KS3、HTTP等等,數(shù)據(jù)源非常豐富,而且可以實(shí)現(xiàn)流量控制、斷點(diǎn)續(xù)傳等等。
OssImport軟件特色
1、支持的豐富的數(shù)據(jù)源,有本地、七牛、百度BOS、AWS S3、Azure Blob、又拍云、騰訊云COS、金山KS3、HTTP、OSS等,并可根據(jù)需要擴(kuò)展;
2、支持?jǐn)帱c(diǎn)續(xù)傳;
3、支持流量控制;
4、支持遷移指定時間后的文件、特定前綴的文件;
5、支持并行數(shù)據(jù)下載、上傳;
6、支持單機(jī)模式和分布式模式,單機(jī)模式部署簡單使用方便,分布式模式適合大規(guī)模數(shù)據(jù)遷移。
運(yùn)行環(huán)境
ossimport可以部署在Linux或Windows系統(tǒng)上,要求如下:Windows7及以上版本
Linux系統(tǒng)最新版本
Java 1.7及以上版本
分布式部署暫時不支持Windows系統(tǒng)。
遷移失敗常見問題
如果遷移文件失敗,建議您先查看遷移失敗日志,確認(rèn)失敗的原因。您可以在解決這些問題后使用retry命令進(jìn)行重試。遷移失敗日志的路徑為master/jobs/${JobName}/failed_tasks/${TaskName}/audit.log。
使用stat命令查看任務(wù)狀態(tài)顯示失敗解決方案:使用stat命令查看遷移任務(wù)狀態(tài),如果JobState為failed,則遷移任務(wù)失敗。遷移完成后請使用retry命令進(jìn)行重試。
- 部分文件遷移失敗后反復(fù)重試都無法成功遷移
- 解決方案:
- 查看遷移失敗文件列表master/jobs/${JobName}/failed_tasks/${TaskName}/error.list,獲取失敗文件的相對路徑。
- 確認(rèn)是否有這部分文件的權(quán)限訪問、文件是否被刪除、是否是軟鏈接文件、文件名是否存在亂碼等。
- 解決以上問題后,使用retry命令進(jìn)行重試。
- 遷移失敗日志報“The bucket you are attempting to access must be addressed using the specified endpoint”錯誤
Exception:com.aliyun.oss.OSSException: The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint. <Error> <Code>AccessDenied</Code> <Message>The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.</Message> <RequestId>56EA98DE815804**21B23EE6</RequestId> <HostId>my-oss-bucket.oss-cn-qingdao.aliyuncs.com</HostId> <Bucket>my-oss-bucket</Bucket> <Endpoint>oss-cn-hangzhou.aliyuncs.com</Endpoint> </Error>
問題分析:srcDomain或destDomain填寫錯誤,請按照域名列表填寫正確的Endpoint。
- 遷移失敗日志報“The request signature we calculated does not match the signature you provided”錯誤
Exception:com.aliyun.oss.OSSException: The request signature we calculated does not match the signature you provided. Check your key and signing method. [ErrorCode]: SignatureDoesNotMatch [RequestId]: xxxxxxx [HostId]: xxx.oss-cn-shanghai.aliyuncs.com
問題分析:destAccessKey和destSecretKey有誤,請?zhí)顚懻_的AK信息。
- 遷移失敗日志報“The bucket name “xxx/xx” is invalid”錯誤
java.lang.IllegalArgumentException: The bucket name "xxx/xx" is invalid. A bucket name must: 1) be comprised of lower-case characters, numbers or dash(-); 2) start with lower case or numbers; 3) be between 3-63 characters long.
問題分析:檢查配置項(xiàng)destBucket是否填寫正確,Bucket名稱是不帶正斜線(/)以及路徑的。
- 遷移失敗日志報“Connect to xxx.oss-cn-beijing-internal.aliyuncs.com:80 timed out”錯誤
Unable to execute HTTP request: Connect to xxx.oss-cn-beijing-internal.aliyuncs.com:80 timed out [ErrorCode]: ConnectionTimeout [RequestId]: Unknown
問題分析:這個是連接超時的報錯,通常原因是遷移用的設(shè)備非ECS實(shí)例或不是與OSS同地域的ECS實(shí)例,但是配置文件使用了OSS的內(nèi)網(wǎng)域名。OSS內(nèi)網(wǎng)域名僅支持同地域ECS實(shí)例訪問。
解決方案:- 修改配置文件中域名為外網(wǎng)Endpoint,清除任務(wù)后重新提交任務(wù)。
- 使用與OSS同地域的ECS實(shí)例運(yùn)行遷移任務(wù)。
- 遷移失敗日志報“The specified bucket is not valid”錯誤
com.aliyun.oss.OSSException: The specified bucket is not valid. [ErrorCode]: InvalidBucketName [RequestId]: 57906B4DD0EBAB0FF553D661 [HostId]: you-bucket.you-bucketoss-cn-hangzhou-internal.aliyuncs.com
問題分析:配置文件里的destDomian配置的域名是Bucket所在地域的Endpoint地址,而不是帶Bucket名稱的二級域名。例如Bucket在華北2(北京),應(yīng)填寫oss-cn-beijing.aliyuncs.com。詳情請參見配置文件示例。
- 遷移失敗日志報“Unable to execute HTTP request: The Difference between … is too large”錯誤
Unable to execute HTTP request: The Difference between the request time and the current time is too large. [ErrorCode]: RequestTimeTooSkewed [RequestId]: xxxxxxx