前端js华为云obs断点续传上传

前端js华为云obs断点续传上传

断点续传上传就是将待上传的文件分成若干份分别上传,并实时地将每段上传结果统一记录在断点续传记录对象中,仅当所有分段都上传成功时返回上传成功的结果,否则在回调函数中返回错误码提醒用户通过传入断点续传记录对象再次调用接口进行重新上传。

// 创建ObsClient实例
var obsClient = new ObsClient({
	 access_key_id: '*** Provide your Access Key ***', 
	 secret_access_key: '*** Provide your Secret Key ***', 
	 server : 'https://your-endpoint'
});
var cp;
var hook;
obsClient.uploadFile({
	 Bucket : 'bucketname', // 桶名
	 Key : 'objectname', // 对象名
	 SourceFile : document.getElementById('file').files[0], // 待上传的文件
	 PartSize : 9 * 1024 * 1024, // 分段大小
	 ProgressCallback : function(transferredAmount, totalAmount, totalSeconds){
		 console.log(transferredAmount * 1.0 / totalSeconds / 1024);
		 console.log(transferredAmount * 100.0 / totalAmount);
		 if(hook && (transferredAmount / totalAmount) > 0.5){
			 // 暂停断点续传任务
			 hook.cancel();
		 }
	 },
	 EventCallback : function(eventType, eventParam, eventResult){
	 // 处理事件响应
	 },
	 ResumeCallback : function(resumeHook, uploadCheckpoint){
		 // 获取取消断点续传上传任务控制参数
		 hook = resumeHook;
		 // 记录断点
		 cp = uploadCheckpoint;
		 }
	 }, function(err, result){
		 console.error('Error-->' + err);
		 // 出现错误,再次调用断点续传接口,继续上传任务
		 if(err){
			 obsClient.uploadFile({
				 UploadCheckpoint : cp,
				 ProgressCallback : function(transferredAmount, totalAmount, totalSeconds){
					 console.log(transferredAmount * 1.0 / totalSeconds / 1024);
					 console.log(transferredAmount * 100.0 / totalAmount);
	 	 	 },
				 EventCallback : function(eventType, eventParam, eventResult){
				 // 处理事件响应
				 },
	 		}, function(err, result){
			 if(err){
			 	console.error('Error-->' + err);
			 }else{
				 if(result.CommonMsg.Status < 300){
					 console.log('RequestId-->' + result.InterfaceResult.RequestId);
					 console.log('Bucket-->' + result.InterfaceResult.Bucket);
					 console.log('Key-->' + result.InterfaceResult.Key);
					 console.log('Location-->' + result.InterfaceResult.Location);
				 }else{
					 console.log('Code-->' + result.CommonMsg.Code);
					 console.log('Message-->' + result.CommonMsg.Message);
				 }
			 }
	 		});
		 }else {
		 	console.log('Status-->' + result.CommonMsg.Status);
			 if (result.CommonMsg.Status < 300 && result.InterfaceResult) {
			 	console.log('RequestId-->' + result.InterfaceResult.RequestId);
			 }
		 }
});
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值