当前位置: 首页 > news >正文

asp网站建设软件seo基础入门视频教程

asp网站建设软件,seo基础入门视频教程,房地产开发公司排名,html5 房地产网站案例oss-android/ios-sdk 断点续传前言移动端现状随着移动端设备的硬件水平的不断提高#xff0c;如今的cpu#xff0c;内存等方面都大大的超过了一般的pc电脑#xff0c;因此在现今的程序中#xff0c;合理的使用多线程去完成一些事情是非常有必要的。多线程上传的好处进一步占…oss-android/ios-sdk 断点续传前言移动端现状随着移动端设备的硬件水平的不断提高如今的cpu内存等方面都大大的超过了一般的pc电脑因此在现今的程序中合理的使用多线程去完成一些事情是非常有必要的。多线程上传的好处进一步占满网络资源。进一步占满I/O资源。实现原理策略oss有分片上传的功能断点续传就是基于分片上传的几个api接口进行的封装主要由InitiateMultipartUploadUploadPartCompleteMultipartUploadAbortMultipartUploadListParts这几个组成。流程细节断点续传是一个大任务又3部分来完成分别是获取uploadId分片上传完成上传这一整个连续的步骤统一在一个线程中进行。获取uploadId这块需要先对本地缓存文件进行获取如未拿到就会直接重新生成新的uploadId直接去进行分片上传否则会对记录的id进行之前上传了多少片进行还原继续原来的位置继续上传。分片上传部分采用多线程并发上传机制目前线程开启数量最多5条根据cpu的核数进行判断如果核数5会采用核数进行配置 分片的个数最多5000。完成上传对上传的part进行排序需要按照自然顺序1n 的顺序进行上传。文件校验通过文件的md5等其他信息进行校验分片上传中每一片也会跟服务器做md5校验。进度回调机制目前进度回调算是最基础版目前回调原理是根据每一个分片来回调的即当分片上传成功回调一次。使用方式在本地持久保存断点记录的调用方式android:, , , recordDirectory);\n // 设置上传过程回调\nrequest.setProgressCallback(new OSSProgressCallback() {\n Override\n public void onProgress(ResumableUploadRequest request\n , long currentSize, long totalSize) {\n Log.d(resumableUpload, currentSize: currentSize totalSize: totalSize);\n }\n});\nOSSAsyncTask resumableTask oss.asyncResumableUpload(request\n , new OSSCompletedCallback() {\n Override\n public void onSuccess(ResumableUploadRequest request, ResumableUploadResult result) {\n Log.d(resumableUpload, success!);\n }\n \n Override\n public void onFailure(ResumableUploadRequest request, ClientException clientExcepion\n , ServiceException serviceException) {\n // 异常处理\n }\n});,classes:null} data-cke-widget-upcasted1 data-cke-widget-keep-attr0 data-widgetcodeSnippet classcke_widget_elementString recordDirectory Environment.getExternalStorageDirectory().getAbsolutePath() /oss_record/;File recordDir new File(recordDirectory);// 要保证目录存在如果不存在则主动创建if (!recordDir.exists()) {recordDir.mkdirs();}// 创建断点上传请求参数中给出断点记录文件的保存位置需是一个文件夹的绝对路径ResumableUploadRequest request new ResumableUploadRequest(, , , recordDirectory);// 设置上传过程回调request.setProgressCallback(new OSSProgressCallback() {Overridepublic void onProgress(ResumableUploadRequest request, long currentSize, long totalSize) {Log.d(resumableUpload, currentSize: currentSize totalSize: totalSize);}});OSSAsyncTask resumableTask oss.asyncResumableUpload(request, new OSSCompletedCallback() {Overridepublic void onSuccess(ResumableUploadRequest request, ResumableUploadResult result) {Log.d(resumableUpload, success!);}Overridepublic void onFailure(ResumableUploadRequest request, ClientException clientExcepion, ServiceException serviceException) {// 异常处理}});ios:;\nresumableUpload.objectKey ;\nresumableUpload.partSize 1024 * 1024;\nresumableUpload.uploadProgress ^(int64_t bytesSent, int64_t totalByteSent, int64_t totalBytesExpectedToSend) {\n NSLog(%lld, %lld, %lld, bytesSent, totalByteSent, totalBytesExpectedToSend);\n};\n \nresumableUpload.uploadingFileURL [NSURL fileURLWithPath:];\nNSString *cachesDir [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];\nresumableUpload.recordDirectoryPath cachesDir;//记录断点的文件路径\nOSSTask * resumeTask [client resumableUpload:resumableUpload];\n[resumeTask continueWithBlock:^id(OSSTask *task) {\n if (task.error) {\n NSLog(error: %, task.error);\n if ([task.error.domain isEqualToString:OSSClientErrorDomain]\n task.error.code OSSClientErrorCodeCannotResumeUpload) {\n // 该任务无法续传需要获取新的uploadId重新上传\n }\n } else {\n NSLog(Upload file success);\n }\n return nil;\n}];,classes:null} data-cke-widget-upcasted1 data-cke-widget-keep-attr0 data-widgetcodeSnippet classcke_widget_element// 获得UploadId进行上传如果任务失败并且可以续传利用同一个UploadId可以上传同一文件到同一个OSS上的存储对象OSSResumableUploadRequest * resumableUpload [OSSResumableUploadRequest new];resumableUpload.bucketName ;resumableUpload.objectKey ;resumableUpload.partSize 1024 * 1024;resumableUpload.uploadProgress ^(int64_t bytesSent, int64_t totalByteSent, int64_t totalBytesExpectedToSend) {NSLog(%lld, %lld, %lld, bytesSent, totalByteSent, totalBytesExpectedToSend);};resumableUpload.uploadingFileURL [NSURL fileURLWithPath:];NSString *cachesDir [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];resumableUpload.recordDirectoryPath cachesDir;//记录断点的文件路径OSSTask * resumeTask [client resumableUpload:resumableUpload];[resumeTask continueWithBlock:^id(OSSTask *task) {if (task.error) {NSLog(error: %, task.error);if ([task.error.domain isEqualToString:OSSClientErrorDomain] task.error.code OSSClientErrorCodeCannotResumeUpload) {// 该任务无法续传需要获取新的uploadId重新上传}} else {NSLog(Upload file success);}return nil;}];性能统计数据分析android/ios 端的分片上传改为并发后的测试与之前对比上传分片的网络请求速度 多线程 和单线程是一样的使用时间这个主要是取决于带宽速度 多线程相较于单线程主要是提高了读取文件的io时间。数据如下分享喜欢0赠金笔加载中请稍候......评论加载中请稍候...发评论登录名 密码 找回密码 注册记住登录状态昵   称评论并转载此博文发评论以上网友发言只代表其个人观点不代表新浪网的观点或立场。
http://www.zqtcl.cn/news/610092/

相关文章:

  • 傻瓜式网站建设软件保险预约
  • 网站 备案规定自己做简单网站
  • 网站上怎么做支付接口南乐网站建设
  • 咸阳网站建设公司电话做个公司网站大概多少钱
  • 网站如何做关键词排名点子网创意网
  • 浙江建设培训考试网站河源东莞网站建设
  • 网站移动端做pc端的301跳转哪些网站是增值网
  • wordpress新闻站浙江耀华建设集团网站
  • 网站开发代理企业网站推广技巧和方法
  • 俄语网站开发用模板做的网站多少钱
  • 丽水网站建设公司广州网络公司
  • 做基金的网站哪个好针对大学生推广引流
  • 国外对旅游网站的建设互联网推广和互联网营销
  • 海南省建设厅网站首页有什么做设计的兼职网站
  • 网站导航功能苏州市高新区建设局网站
  • jsp网站 值班多语种网站开发
  • 公司网站英文做电商
  • 合肥企业网站建设公司哪家好卖产品怎么做网站
  • 网站建设公司86215中国中小企业网站
  • 做网站 如何 挣钱游戏网站开发协议
  • 网站建设发展wordpress比较慢
  • 收费网站推广动漫制作就业方向
  • 湖北优化网站建设设计公司需要什么资质
  • 个人网站怎么制作wordpress创意小工具
  • 网站管理维护怎么做在线oa
  • vue做企业网站wordpress 不发送邮件
  • 深圳做网站哪家便宜邮政编码html编写
  • 黑龙江营商环境建设局网站门户网站整改报告
  • 是不是做推广都得有网站深圳网站建设新闻
  • 旅游做视频网站关于建设网站的书本