欢迎到专业群( uniCloud 官方技术交流群 ) 咨询,群中有相关专业的管理员和群友。
切换服务空间时,原来空间下的 Redis 和 CDN(包括云存储和扩展存储)资源需要分别处理,它们无法通过控制台的一键操作直接整体迁移。下面为你梳理具体的处理方案。
Redis 的处理方式
Redis 实例与具体的服务空间绑定,不能直接迁移。你需要在新的服务空间中重新开通 Redis 服务。
- 重新开通:在新服务空间的控制台中,根据业务需求选择对应的 Redis 规格并开通。
- 数据迁移:Redis 中的数据(如缓存、session等)通常具有时效性。如果数据非常重要,你可能需要联系 DCloud 官方人员(比如发邮件到 service@dcloud.io)协助你处理数据迁移问题。通常情况下,业务代码中应具备缓存失效后自动重建的逻辑,因此直接在新空间使用“空”的 Redis 实例也是可行的。
CDN 及云存储文件的处理方式
这是你最关心的部分,特别是文件很多的情况。云存储的文件需要手动迁移,但可以通过工具来提高效率。
- 云函数、数据库Schema等代码:这些可以通过在 HBuilderX 中切换项目关联的服务空间,然后重新上传。注意:上传会覆盖新空间中的同名云函数和 Schema。
- 云存储文件:文件无法通过 HBuilderX 直接“一键搬家”,需要在两个空间之间进行拷贝。
较为简单的云存储文件迁移步骤:
-
方案一:使用云函数进行迁移(推荐)
在新空间或旧空间编写一个云函数,利用 uniCloud.downloadFile 和 uniCloud.uploadFile API,实现文件的批量下载和上传。这个方案对于批量处理非常高效。基本思路是:
- 在旧空间列出所有需要迁移的文件列表。
- 循环处理列表,从旧空间下载文件到云函数临时内存。
- 立即将临时内存中的文件流上传到新空间的云存储中。
-
方案二:使用 uni-cdn 或相关工具
如果你的文件存储在“扩展存储”中,可以利用一些已有的工具或插件市场提供的迁移插件。例如,在插件市场搜索“unicloud云存储迁移”或“一键搬家”等关键词,可能有现成的插件支持云存储文件的批量迁移,这比手动写云函数更简单。
-
特别注意:数据库中的文件链接
如果你的数据库(如用户头像、文章配图字段)里保存了旧空间的 CDN 域名,迁移完文件后,还需要批量更新数据库中的域名。
- 你可以在文件迁移完成后,再写一个云函数,使用正则或批量更新操作,将数据库中所有旧域名(如
https://旧空间ID.cdn.bspapp.com)替换为新空间的域名。
-
自定义域名绑定问题
如果你之前在旧空间的云存储或扩展存储上绑定了自定义域名(例如 cdn.yourdomain.com),在绑定到新空间之前,需要先去对应的云厂商控制台(如阿里云 CDN)解除该域名与旧资源的绑定关系,否则在新空间绑定时会提示域名已被占用。
总结一下,切换空间的核心工作量在于云存储文件的批量拷贝和数据库链接的替换。编写一个云函数来完成这个任务是相对高效且成本较低的方式。
1 个回复
Ask小助手 - Ask社区AI助手
切换服务空间时,原来空间下的 Redis 和 CDN(包括云存储和扩展存储)资源需要分别处理,它们无法通过控制台的一键操作直接整体迁移。下面为你梳理具体的处理方案。
Redis 的处理方式
Redis 实例与具体的服务空间绑定,不能直接迁移。你需要在新的服务空间中重新开通 Redis 服务。
CDN 及云存储文件的处理方式
这是你最关心的部分,特别是文件很多的情况。云存储的文件需要手动迁移,但可以通过工具来提高效率。
较为简单的云存储文件迁移步骤:
方案一:使用云函数进行迁移(推荐)
在新空间或旧空间编写一个云函数,利用
uniCloud.downloadFile和uniCloud.uploadFileAPI,实现文件的批量下载和上传。这个方案对于批量处理非常高效。基本思路是:方案二:使用
uni-cdn或相关工具如果你的文件存储在“扩展存储”中,可以利用一些已有的工具或插件市场提供的迁移插件。例如,在插件市场搜索“unicloud云存储迁移”或“一键搬家”等关键词,可能有现成的插件支持云存储文件的批量迁移,这比手动写云函数更简单。
特别注意:数据库中的文件链接
如果你的数据库(如用户头像、文章配图字段)里保存了旧空间的 CDN 域名,迁移完文件后,还需要批量更新数据库中的域名。
https://旧空间ID.cdn.bspapp.com)替换为新空间的域名。自定义域名绑定问题
如果你之前在旧空间的云存储或扩展存储上绑定了自定义域名(例如
cdn.yourdomain.com),在绑定到新空间之前,需要先去对应的云厂商控制台(如阿里云 CDN)解除该域名与旧资源的绑定关系,否则在新空间绑定时会提示域名已被占用。总结一下,切换空间的核心工作量在于云存储文件的批量拷贝和数据库链接的替换。编写一个云函数来完成这个任务是相对高效且成本较低的方式。
要回复问题请先登录或注册
公告
更多>相关问题