建设电子商务网站的方法有qt科技感ui界面

张小明 2026/1/19 20:59:08
建设电子商务网站的方法有,qt科技感ui界面,网上课程网站建设方案,wordpress 媒体库分享1. 整体流程概述 前端使用阿里云OSS上传文件的完整流程如下#xff1a; 调用后端接口获取临时密钥使用临时密钥初始化OSS客户端调用OSS客户端上传文件获取上传成功后的文件URL 2. 后端接口调用#xff08;获取临时密钥#xff09; 2.1 接口信息 接口地址 #xff1a; /pc/f…1. 整体流程概述前端使用阿里云OSS上传文件的完整流程如下调用后端接口获取临时密钥使用临时密钥初始化OSS客户端调用OSS客户端上传文件获取上传成功后的文件URL2. 后端接口调用获取临时密钥2.1 接口信息接口地址 /pc/file/sts请求方式 GET返回格式 JSON2.2 返回参数说明{code:200,// 状态码0或200表示成功msg:操作成功,data:{accessKeyId:STS.NZQpZ...,// 临时AccessKeyIdaccessKeySecret:LJ8Z8...,// 临时AccessKeySecretsecurityToken:CAIS...,// 临时安全令牌endpoint:oss-cn-hangzhou.aliyuncs.com,// OSS地域节点bucketName:rh-app-private,// OSS存储空间名称bucketDomain:https://rh-app-private.oss-cn-hangzhou.aliyuncs.com// OSS存储空间域名}}2.3 前端调用代码importapifrom/utils/apiexportconstgetSTSTokenasync(){try{constresponseawaitapi.get(/pc/file/sts)if(response.code200){returnresponse.data}else{thrownewError(获取STS密钥失败: (response.msg||未知错误))}}catch(error){console.error(获取STS密钥失败:,error)throwerror}}3. OSS客户端初始化3.1 安装阿里云OSS SDKnpm install ali-oss3.2 初始化OSS客户端importOSSfromali-ossimport{getSTSToken}from./stsletclientnullexportconstinitOSSClientasync(){try{consttokenawaitgetSTSToken()// 解析region从endpoint中提取region部分letregiontoken.endpointif(token.endpointtoken.endpoint.includes(.)){constpartstoken.endpoint.split(.)if(parts.length3parts[0].startsWith(oss-)){regionparts[0]}else{regionparts[0]console.warn(非标准OSS endpoint格式:,region)}}// 存储bucketDomain以便上传时使用window.ossBucketDomaintoken.bucketDomain// 创建OSS客户端实例clientnewOSS({region:region,// 区域endpoint:token.endpoint,// 地域节点accessKeyId:token.accessKeyId,// 临时AccessKeyIdaccessKeySecret:token.accessKeySecret,// 临时AccessKeySecretstsToken:token.securityToken,// 临时安全令牌bucket:token.bucketName,// 存储空间名称// 配置自动刷新临时密钥refreshSTSToken:async(){constnewTokenawaitgetSTSToken()return{accessKeyId:newToken.accessKeyId,accessKeySecret:newToken.accessKeySecret,stsToken:newToken.securityToken}},// 刷新间隔5分钟refreshSTSTokenInterval:300000})console.log(OSS客户端初始化成功)returnclient}catch(error){console.error(OSS客户端初始化失败:,error)throwerror}}4. 文件上传实现4.1 文件上传函数exportconstuploadFileToOSSasync(file,type,phone,name){try{// 确保OSS客户端已初始化if(!client){awaitinitOSSClient()}// 获取文件后缀constfileExtfile.name.substring(file.name.lastIndexOf(.))consttimestampDate.now()// 根据文件类型生成不同的路径和文件名letfilePathif(typefront||typeback){// 身份证照片 - /Doctor_ID/手机号_医生姓名_时间戳.图片后缀constfolder/Doctor_ID/filePath${folder}${phone}_${name}_${timestamp}${fileExt}}elseif(typemedicalFront||typemedicalBack){// 医师执业资格证照片 - /Doctor_PPC/手机号_医生姓名_时间戳.图片后缀constfolder/Doctor_PPC/filePath${folder}${phone}_${name}_${timestamp}${fileExt}}else{// 其他类型文件filePath${type}-${timestamp}-${Math.random().toString(36).substring(2,10)}${fileExt}}// 上传文件constresultawaitclient.put(filePath,file)// 返回文件URL - 优先使用bucketDomain构建URLletfileUrlresult.urlif(window.ossBucketDomainfilePath){// 移除filePath开头可能的斜杠constcleanFilePathfilePath.startsWith(/)?filePath.substring(1):filePath fileUrl${window.ossBucketDomain}/${cleanFilePath}}returnfileUrl}catch(error){console.error(OSS上传失败:,error)thrownewError(文件上传失败)}}4.2 调用上传函数// 在Vue组件中调用consthandleFileChangeasync(event,type){constfileevent.target.files[0]if(!file)returntry{// 显示上传中提示showToast({message:上传中...,duration:0})// 上传到OSS传递必要参数constimageUrlawaituploadFileToOSS(file,type,form.phone,form.name)// 存储图片URLif(typefront){form.frontIdCardimageUrl}elseif(typeback){form.backIdCardimageUrl}elseif(typemedicalFront){form.medicalFrontimageUrl}elseif(typemedicalBack){form.medicalBackimageUrl}showToast(图片上传成功)}catch(error){console.error(图片上传失败:,error)showToast(图片上传失败请稍后重试)// 清空文件输入event.target.value}}5. 文件命名规范5.1 身份证照片路径格式 /Doctor_ID/手机号_医生姓名_时间戳.图片后缀示例 /Doctor_ID/13800138000_张三_1734478800000.jpg5.2 医师执业资格证照片路径格式 /Doctor_PPC/手机号_医生姓名_时间戳.图片后缀示例 /Doctor_PPC/13800138000_张三_1734478800000.jpg6. 错误处理6.1 接口调用错误try{constresponseawaitapi.get(/pc/file/sts)// 处理响应}catch(error){console.error(获取STS密钥失败:,error)showToast(OSS初始化失败图片上传功能可能不可用)}6.2 文件上传错误try{constresultawaitclient.put(filePath,file)// 处理上传结果}catch(error){console.error(OSS上传失败:,error)showToast(文件上传失败请稍后重试)}7. 关键代码示例7.1 完整的OSS工具类src/utils/oss.jsimportOSSfromali-ossimportapifrom/utils/api// 全局OSS客户端实例letclientnull// 获取STS临时密钥exportconstgetSTSTokenasync(){try{constresponseawaitapi.get(/pc/file/sts)if(response.code0||response.code200){returnresponse.data}else{thrownewError(获取STS密钥失败: (response.msg||未知错误))}}catch(error){console.error(获取STS密钥失败:,error)throwerror}}// 初始化OSS客户端exportconstinitOSSClientasync(){try{consttokenawaitgetSTSToken()// 解析regionletregiontoken.endpointif(token.endpointtoken.endpoint.includes(.)){constpartstoken.endpoint.split(.)if(parts.length3parts[0].startsWith(oss-)){regionparts[0]}else{regionparts[0]console.warn(非标准OSS endpoint格式:,region)}}// 存储bucketDomainwindow.ossBucketDomaintoken.bucketDomain// 创建OSS客户端实例clientnewOSS({region:region,endpoint:token.endpoint,accessKeyId:token.accessKeyId,accessKeySecret:token.accessKeySecret,stsToken:token.securityToken,bucket:token.bucketName,refreshSTSToken:async(){constnewTokenawaitgetSTSToken()return{accessKeyId:newToken.accessKeyId,accessKeySecret:newToken.accessKeySecret,stsToken:newToken.securityToken}},refreshSTSTokenInterval:300000})returnclient}catch(error){console.error(OSS客户端初始化失败:,error)throwerror}}// 上传文件到OSSexportconstuploadFileToOSSasync(file,type,phone,name){try{if(!client){awaitinitOSSClient()}constfileExtfile.name.substring(file.name.lastIndexOf(.))consttimestampDate.now()letfilePathif(typefront||typeback){constfolder/Doctor_ID/filePath${folder}${phone}_${name}_${timestamp}${fileExt}}elseif(typemedicalFront||typemedicalBack){constfolder/Doctor_PPC/filePath${folder}${phone}_${name}_${timestamp}${fileExt}}else{filePath${type}-${timestamp}-${Math.random().toString(36).substring(2,10)}${fileExt}}constresultawaitclient.put(filePath,file)letfileUrlresult.urlif(window.ossBucketDomainfilePath){constcleanFilePathfilePath.startsWith(/)?filePath.substring(1):filePath fileUrl${window.ossBucketDomain}/${cleanFilePath}}returnfileUrl}catch(error){console.error(OSS上传失败:,error)thrownewError(文件上传失败)}}8. 注意事项临时密钥有效期 临时密钥通常有一定的有效期默认1小时代码中配置了自动刷新机制文件大小限制 建议在前端添加文件大小限制如10MB避免上传过大文件错误处理 完善的错误处理可以提高用户体验CORS配置 确保OSS存储空间已正确配置CORS规则允许前端域名访问网络稳定性 考虑添加重试机制提高弱网络环境下的上传成功率通过以上流程前端可以安全、高效地将文件上传到阿里云OSS并获取可用的文件URL用于后续业务处理。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

led灯什么网站做推广好如何让自己的网站被搜索引擎收录

Dress Code虚拟试衣数据集:新手完全入门指南 【免费下载链接】dress-code 项目地址: https://gitcode.com/gh_mirrors/dre/dress-code 想要体验高质量虚拟试衣技术却不知从何开始?Dress Code数据集正是您需要的完美解决方案。这个突破性的高分辨…

张小明 2026/1/17 18:42:35 网站建设

运营企业网站怎么赚钱奇人网站

很多童鞋搞不懂python迭代器和生成器到底是什么?它们之间又有什么样的关系?这篇文章就是要用最简单的方式让你理解Python迭代器和生成器!迭代器和迭代过程维基百科解释道:在Python中,迭代器是遵循迭代协议的对象。使用…

张小明 2026/1/17 18:42:36 网站建设

长沙网络营销平台排行淄博网站优化首选公司

安装过程曲折,不断出bug,最终还是成功安装,遂写下此文以教后人。【注意】此为 Debug 版本的安装1 准备工作安装 zlib (git 下载,cmake 安装,过程很简单)安装 occt (如果需要用到 occt 的话,这个…

张小明 2026/1/17 18:42:36 网站建设

江苏省建设厅网站证件查询新的网站建设技术

Puppet监控、报告与故障排除指南 1. 生成报告 在管理大量机器时,Puppet的报告功能能提供机器实际运行情况的宝贵信息。 1.1 启用报告 要启用报告,只需在客户端的 puppet.conf 的 [main] 或 [agent] 部分添加以下内容: report = true在Puppet的最新版本中, rep…

张小明 2026/1/17 18:42:39 网站建设

朝阳网站宿迁房产网新楼盘

PyTorch-CUDA-v2.9镜像能否运行Qwen-VL视觉问答? 在多模态AI应用日益普及的今天,越来越多开发者面临一个现实问题:如何快速、稳定地部署像 Qwen-VL 这类大型图文理解模型?尤其是在资源有限或团队协作频繁的场景下,环境…

张小明 2026/1/17 18:42:40 网站建设

用什么软件来建网站深圳宝安区住房和建设局网站官网

某科技公司如何落地 Anything-LLM:从技术选型到企业级知识中枢的实践 在人工智能加速渗透企业运营的今天,一个看似简单却长期困扰研发团队的问题浮出水面:新人入职两周,依然搞不清核心接口怎么调用。 某中型科技公司就面临这样的窘…

张小明 2026/1/17 18:42:41 网站建设