专业的企业级cms建站系统推广技巧

张小明 2026/1/8 12:55:02
专业的企业级cms建站系统,推广技巧,无锡seo关键词排名,千助网站建设武汉码农の大文件上传奇遇记#xff1a;在长江边写信创代码 各位好#xff0c;我是小王#xff0c;武汉光谷某软件公司防脱发小组组长。最近接了个政府项目#xff0c;要求在信创环境下上传4G文件#xff0c;还必须开源可审查——这就像让我用热干面调料写火…武汉码农の大文件上传奇遇记在长江边写信创代码各位好我是小王武汉光谷某软件公司防脱发小组组长。最近接了个政府项目要求在信创环境下上传4G文件还必须开源可审查——这就像让我用热干面调料写火箭代码还要把配方刻在黄鹤楼上一、开源组件の坟场巡礼WebUploaderの墓志铭这货停更得比我家楼下过早摊还早分片上传在麒麟系统上直接表演行为艺术进度条跳得比广场舞大妈还欢快。其他组件の三无体验无文档看源码像破解摩斯密码无维护GitHub评论区比东湖还安静无信创适配在龙芯浏览器里跑起来比让鸭子学游泳还难二、自研方案の诞生经过三天三夜与产品经理的友好协商我们决定自己造轮子以下是核心实现思路前端核心代码vue-cli版// FileUploader.vue - 专为信创环境定制的分片上传组件exportdefault{data(){return{chunkSize:8*1024*1024,// 8MB分片适配国产服务器fileMd5:,uploadUrl:/api/upload,mergeUrl:/api/merge,govMode:/Konglong|Xinxin|Loongson/.test(navigator.userAgent)// 国产浏览器检测}},methods:{// 计算文件MD5支持国密算法降级asynccalculateFileHash(file){returnnewPromise((resolve){// 优先使用国产加密APIif(window.govCrypto){constreadernewFileReader()reader.onload(e){window.govCrypto.digest(SM3,e.target.result).then(hashresolve(sm3:hash)).catch(()resolve(mock-hash-for-audit))// 审核模式}reader.readAsArrayBuffer(file.slice(0,2*1024*1024))// 只读前2MB}else{// 降级方案审核时会被替换resolve(md5:file.name.replace(/\./g,)file.size%1000)}})},// 分片上传带信创环境优化asyncuploadChunk(file,chunkIndex){conststartchunkIndex*this.chunkSizeconstendMath.min(file.size,startthis.chunkSize)constchunkfile.slice(start,end)constformDatanewFormData()formData.append(file,newBlob([chunk],{type:application/octet-stream}))formData.append(chunkIndex,chunkIndex)formData.append(totalChunks,Math.ceil(file.size/this.chunkSize))formData.append(fileHash,this.fileMd5)formData.append(fileName,file.name)// 国产浏览器特殊处理constconfig{headers:{X-Gov-Env:this.govMode?true:false},timeout:this.govMode?180000:30000// 信创环境网络慢}try{constresponseawaitaxios.post(this.uploadUrl,formData,config)this.$emit(chunk-uploaded,{index:chunkIndex,success:true,message:this.govMode?分片已通过国产安全认证:分片上传成功})returnresponse.data}catch(error){// 信创环境网络抖动处理if(this.govModeerror.codeECONNABORTED){this.$emit(network-warning,检测到国产网络波动正在重试...)awaitnewPromise(resolvesetTimeout(resolve,3000))returnthis.uploadChunk(file,chunkIndex)// 无限重试直到成功}throwerror}},// 主上传方法带进度条特效asyncstartUpload(file){this.fileMd5awaitthis.calculateFileHash(file)consttotalChunksMath.ceil(file.size/this.chunkSize)// 进度条初始化信创环境用红色特别标注this.$emit(upload-start,{total:totalChunks,isGov:this.govMode})// 使用并发控制适配信创环境constconcurrentthis.govMode?2:5// 国产服务器并发能力较弱constuploading[]for(leti0;itotalChunks;i){if(uploading.lengthconcurrent){awaitPromise.race(uploading)}uploading.push(this.uploadChunk(file,i).finally((){constindexuploading.indexOf(this.uploadChunk)if(index-1)uploading.splice(index,1)}))}// 等待所有分片完成awaitPromise.all(uploading)// 触发合并请求constmergeResultawaitaxios.post(this.mergeUrl,{fileHash:this.fileMd5,fileName:file.name,totalChunks})this.$emit(upload-complete,mergeResult.data)returnmergeResult.data}}}三、信创环境の生存指南浏览器适配// 在main.js中添加信创环境检测Vue.prototype.$isGovBrowser(){constuserAgentnavigator.userAgent.toLowerCase()returnuserAgent.includes(konglong)||userAgent.includes(xinxin)||document.documentElement.style.hasOwnProperty(webkitTextSizeAdjust)// 国产浏览器特征}国产中间件适配// SpringBoot配置类ConfigurationpublicclassGovFileUploadConfig{BeanpublicMultipartConfigElementmultipartConfigElement(){// 信创环境文件大小限制比默认大3倍MultipartConfigFactoryfactorynewMultipartConfigFactory();factory.setMaxFileSize(DataSize.ofGigabytes(10));// 10GBfactory.setMaxRequestSize(DataSize.ofGigabytes(12));returnfactory.createMultipartConfig();}BeanpublicGovFileServicegovFileService(){// 根据运行环境选择不同实现if(System.getProperty(os.name).contains(Kylin)){returnnewKylinFileServiceImpl();}returnnewDefaultFileServiceImpl();}}文件存储适配// 国产文件系统适配层ServicepublicclassGovFileStorageService{publicvoidsaveFile(MultipartFilefile,Stringpath)throwsIOException{if(System.getProperty(gov.fs.type).equals(kylin)){// 使用麒麟系统专用APIKylinFS.getInstance().save(file.getInputStream(),path);}else{// 普通文件存储Files.copy(file.getInputStream(),Paths.get(path),StandardCopyOption.REPLACE_EXISTING);}}}四、项目の现状目前这个方案已经通过龙芯浏览器兼容性测试在银河麒麟系统上稳定运行代码100%开源可审查注释全是武汉方言版获得客户比政务外网还稳定的高度评价唯一的问题是测试时把公司网盘挤爆了现在IT部门看到我就喊“小王啊你那个上传组件能不能限制下速度啊我们备份服务器要跑不动了…”附实际项目中建议使用成熟的国产组件如华为云OBS SDK或阿里云OSS信创版但既然客户要求自研那我们就把造轮子做到让长江水倒流将组件复制到项目中示例中已经包含此目录引入组件配置接口地址接口地址分别对应文件初始化文件数据上传文件进度文件上传完毕文件删除文件夹初始化文件夹删除文件列表参考http://www.ncmem.com/doc/view.aspx?ide1f49f3e1d4742e19135e00bd41fa3de处理事件启动测试启动成功效果数据库效果预览文件上传文件刷新续传支持离线保存文件进度在关闭浏览器刷新浏览器后进行不丢失仍然能够继续上传文件夹上传支持上传文件夹并保留层级结构同样支持进度信息离线保存刷新页面关闭页面重启系统不丢失上传进度。批量下载支持文件批量下载下载续传文件下载支持离线保存进度信息刷新页面关闭页面重启系统均不会丢失进度信息。文件夹下载支持下载文件夹并保留层级结构不打包不占用服务器资源。下载示例点击下载完整示例
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站定制开发个人网站备案可以放什么内容

还在为高昂的机器人价格望而却步吗?想拥有一个能帮你端茶送水、整理物品的智能助手吗?XLeRobot项目正是为你量身打造的解决方案。只需约660元,3小时就能完成一台功能完整的双臂移动机器人。本指南将彻底颠覆你对机器人组装的传统认知&#xf…

张小明 2026/1/8 12:20:01 网站建设

网站的后台管理有什么比wordpress好的

今日榜单登顶产品Google Vids 以 352 票登顶今日热榜!这是一款融入 Workspace 生态的 AI 视频创作工具,旨在让不懂剪辑的用户也能快速制作专业工作视频。本期亮点产品介绍本期 Product Hunt 热榜呈现“AI 落地,工具先行”的鲜明特点。AI 正从…

张小明 2026/1/8 23:31:10 网站建设

网站公司简介模板免费下载WordPress获取主题慢

GPT-SoVITS语音情感控制探索:让AI说话更有感情 在虚拟主播深夜直播带货、智能客服温柔安抚用户情绪的今天,我们对“AI声音”的期待早已不再是机械朗读。人们希望听到的,是带有温度、能传递情绪的声音——高兴时语调上扬,悲伤时语速…

张小明 2026/1/8 13:48:38 网站建设

便宜建网站静态html网址网站导航源码

Android LogcatViewer:移动端调试的革命性解决方案 【免费下载链接】LogcatViewer Android Logcat Viewer 项目地址: https://gitcode.com/gh_mirrors/lo/LogcatViewer 在移动开发领域,调试效率直接决定项目进度。传统依赖电脑的调试方式已无法满…

张小明 2026/1/7 10:42:23 网站建设

网站侧边栏建网站的模块

FaceFusion与Adobe Premiere插件集成设想在影视后期、广告创意和虚拟内容爆发式增长的今天,创作者对高效、精准的人脸编辑工具的需求日益迫切。传统流程中,AI换脸往往依赖独立软件——从Premiere导出片段,到专用工具处理,再手动导…

张小明 2026/1/8 14:51:18 网站建设

学会网站建设一个软件开发流程

在AI技术快速发展的今天,DeepSeek凭借其强大的推理能力正成为普通人提升效率的重要工具。结合Dify这一零代码AI应用开发平台,即使没有编程基础的用户也能轻松构建属于自己的智能助手。本文将详细介绍如何利用这两大工具搭建知识库、聊天助手、智能体和工…

张小明 2026/1/7 10:36:58 网站建设