阿里云现在新增了小时级低消大家的开销一下子涨了不少。今天就给大家讲讲怎么从阿里云迁移到支付宝云。就拿咱们之前做的商城项目来举例迁移之前大家一定要先检查好项目能不能正常跑起来还有所有数据是不是完整没问题。整个迁移流程总共 5 步就能搞定第1步从web控制台生成初始化数据在web控制台选择云数据库-生成初始化数据选择所有的数据表设为导出全部数据右上角选择“生成包含ID”的所有数据如果你的表比较多的话他限制全部数据下载最大量是20条你需要批量下载几次。注意要生成包含ID的记录因为有可能会存在多个表关联关系如果你不带原有ID导入到新的数据库中就会出现无法关联的情况。第2步通过AI编辑器清洗数据将所有压缩包放置到同一个文件夹中方便让AI帮忙清洗。一个数据表通常会生成三个文件后缀分布是.schema.json结构、.init_data.json数据记录、.index.json索引。你可以使用免费的AI编辑器如字节的Trae、腾讯的CodeBuddy下面就分步骤说一下清洗的过程。1.删除schemaschema.json本地已经有了没必要处理直接让AI给你删除就行了。删除文件夹内所有后缀为.schema.json的文件2.对导出记录的_id处理如果导出数据的时候设置的是导出全部记录导出的_id会放置到一个oid对象中如下所示_id:{$oid:692d5d50eef9cb15085972f3}“_id”: { “$oid”: “692d5d50eef9cb15085972f3”} 找到文件夹内后缀名为.init_data.json的所有文件将这种格式的去掉对象只保留oid后面的值3.压缩初始化库找到文件夹内后缀名为.init_data.json的所有文件检查json格式是否正确压缩为紧凑格式就是通过上面三个步骤就可以将导出的数据进行清洗了如果你的情况不一致可以继续和AI进行交流修改。完成之后将清洗好的文件夹内的所有数据复制到项目的database中。第3步创建新的支付宝服务空间创建支付宝云的服务空间建议选择按量计费方式这种也不用担心包年包月忘记续费服务空间被销毁的问题而且按量计费也比较省钱。第4步切换服务空间并初始化项目选择好刚刚创建好的支付宝云服务空间出现重名的公共模块或者函数一律选择覆盖即可。第5步运行并处理兼容以上工作做好之后原来的项目运行在浏览器或者微信小程序分别测试一下是否和之前老服务空间看到的有没有差异一般不会有什么差异。主要要解决的兼容是云存储问题因为我们搬家值搬迁了云函数和数据库云存储历史内容比较少的话可以通过web控制台或者数据库里有保留文件可以批量下载下来但是内容多的话显然是下载不现实的所以不建议迁移云存储因为计费的上涨主要是云函数的低消造成的和云存储没太大关系你就将之前存储的内容放到老的阿里云服务空间就行了只要保证新上传的图片上传到新的阿里云服务空间就行了。兼容处理1.阿里云和支付宝云内置存储的差异客户端使用uploadFile将本地上传云存储后相应参数fileID是有差异的阿里云返回的fileID是https://网址是可以直接访问的而支付宝云返回的fileID是cloud://是无法直接查看的需要通过getTempFileURL获取到https地址。因此如果迁移之后对这一块没有做兼容处理很容易导致存储进数据库的url地址在原有的程序逻辑上无法直接使用所以我们需要调用uploadFile上传之后将获取的fileID处理一下如果检测到时支付宝云那就转成https之后在存入到数据库中。//将支付宝云返回的cloud地址变成https地址exportconstcloudToHttps(str){returnstr.replace(cloud://,https://).replace(str.split(/)[2],str.split(/)[2].normal.cloudstatic.cn);};//uploadFile上传单张图片并调用cloudToHttps方法将cloud地址变为https地址exportconstuploadFileItemasync(url,rootPathpublic,index0){lettempurlurl;letuploadResawaituniCloud.uploadFile({filePath:tempurl,cloudPath:rootPath/dayjs().format(YYYYMMDD)/Date.now()_index.jpg,cloudPathAsRealPath:true});if(uniCloud.config.provideralipayuploadRes?.fileID)uploadRes.fileIDcloudToHttps(uploadRes.fileID);returnuploadRes;};2.浏览器处理跨域选择上传图片的时候控制台可能会报“Access to XMLHttpRequest at https://u.object.cloudrun.cloudbaseapp.cn/miniapp-prod-env-00jy6aw7au2’from origin ‘http://localhost:5173’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.”如下图所示这是因为浏览器要求同源出现了跨域问题那就需要再web控制台跨域配置中新增本地项目启动的地址localhost:5173和localhost:5174都加进去再选择上传就不会出问题了。3.微信小程序配置合法域名在支付宝云服务空间的总览中找到上传、下载、request域名填入到微信小程序后台-开发管理-服务器域名对应的位置进行填入。总结以上就是讲阿里云服务空间迁移至支付宝云服务空间如果在搬迁过程中遇到什么问题或者有更好的办法可以在评论区进行交流。