惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
Recent Announcements
Recent Announcements
GbyAI
GbyAI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Microsoft Azure Blog
Microsoft Azure Blog
N
Netflix TechBlog - Medium
人人都是产品经理
人人都是产品经理
MongoDB | Blog
MongoDB | Blog
D
DataBreaches.Net
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
U
Unit 42
腾讯CDC
D
Docker
The GitHub Blog
The GitHub Blog
阮一峰的网络日志
阮一峰的网络日志
Vercel News
Vercel News
I
InfoQ
Jina AI
Jina AI
爱范儿
爱范儿
宝玉的分享
宝玉的分享
博客园 - Franky
G
Google Developers Blog
P
Proofpoint News Feed

热爱生活与梦想

迁移LeanCloud的Waline评论数据到TiDB/Neon 25年江浙地区暑假自驾游之感慨 使用阿里云灵码继续完成构建 SSL 证书管理器 亲手给儿子做的棒棒糖摩天轮六一礼物 使用腾讯云 CodeBuddy 构建 SSL 证书管理器 修复代码块默认高度相关缺陷 HugoNexT4.7.2 新功能和升级提示 改善代码块折叠和选中功能 支持Github风格的警告样式 新增音乐短代码功能支持 给文章添加摘要和过期提示功能 回顾24年的过去总结 修复Mathjax行内显示公式的问题 给Hugo文章增加阅读更多跳转的锚点定位功能 Win10隐匿的VPN设置和L2TP连接常见错误 Go语言中“糟糕”的日期时间格式化设计 DaoCloud道客提供的免费Docker镜像代理服务 感谢万能淘宝让自己吃到喜欢的美食 WSL运行时遇到未知异常错误无法使用 隐藏的换行符导致Base64加密解密失败 MySQL自带客户端直接免密登录操作 Linux系统中删除目录软链接的注意项 Java程序调用外网API时CA问题 如何不关机重启WSL2恢复虚拟服务 在Windows上安装Podman容器平台做虚拟化 记一次无法弹出移动硬盘的记录 为友情链接添加自动检测脚本 重新激活Github的2FA认证 Linux中使用tar压缩命令排除文件 继续小米手环的健康生活之旅
使用自定义域名激活Vercel部署的Waline服务
凡梦星尘 · 2022-09-01 · via 热爱生活与梦想

近期对于部分 Waline 评论插件的用户来说,或许是非常的困扰时期。先是服务商 LeanCloud 发布国内提供的服务,从8月份起需要绑定自有案例域名才能正常运行。而这两天 Vercel (Waline 官方提供的免费部署方案,也是大部用户的选择)旗下的 vercel.app 域名又遭受 DNS 污染攻击,在国内无法直接访问此域名,导致众多 Waline 用户的服务直接陷入“宕机”状态,真可谓是雪上加霜。

有句话说的好:“只要思想不滑坡,办法总比困难多”。接下来就是给大家分享下,如何通过自定义域名的方式来解决上面遇到的2个问题,此方法仅供各位网友参考参考。 😄

确定方案

由于 vercel.app 域名已经被 DNS 污染,那么国内网络应该都是无法进行访问的,所以原本想直接通过已有域名 DNS 的 CNAME 对vercel.app域名转发的想法是不能实现的。通过多次验证后,确认如下 2 套方案:

  • 方案1: 有备案可用域名,直接转发Vercel DNS Server地址
  • 方案2: 申请免费域名,配置 Vercel 提供的 DNS 服务器

方案1

DNS Server转发

在自有域名的 DNS 服务中添加一条记录,选择 CNAME 类型转发,记录值填写为:cname.vercel-dns.com,参考如下:

DNS Records

然后在 Vercel 中找到 Waline 后端服务的项目,点击Settings标签卡,跳转页面后点击左侧的Domains菜单项,输入你自己定义的域名点击Add`按钮即可。

Domains

方案2

申请免费域名

可以参考之前发布的文章: 创建属于你自己的org永久域名 ,不过这里不需要借助 DNSPOD 提供的解析服务,所以在申请域名时可以直接填写 Vercel 提供的 DNS 服务,默认地址为:

  • ns1.vercel-dns.com
  • ns2.vercel-dns.com

域名申请下来后,访问 Vercel 的域名控制面板 Domains Dashboard 点击右上角的Add按钮选择你的 Waline 项目点击Continue按钮,再输入申请好的域名确认即可。

评论搬迁

除了域名访问的问题外,还需要注意当使用 LeanCloud 国内版作为存储时需要有自定义的备案域名,要是没有的话就只好选择国际版本。那么就要对于已有的数据进行迁移,但 Waline 自带的导入导出功能还是有些问题 #1148 ,建议最好还是使用 LeanCloud 自带的导入导出功能,不过需要进行手动的调整。

第一步是对数据进行导出,这里只需选取CounterCommentUsers三个 Schema 文件,参考如下:

Export Data

第二步是对数据进行调整,需要在 Date 类型的字段中都加上 _type 标识,避免导入后 Waline 无法插入新的评论数据,为此写了个 Python 脚本进行批量的修改,参考如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
def append_date_type(source, target):
  """修改waline date 类型
  :param source: 原始文件
  :param target: 目标文件
  """
  with open(source, "wb+") as tf:
    with open(target, "rb+") as sf:
      print("Current File: %s" % os.path.basename(sf.name))
      while True:
        try:
          line = sf.readline()
          line_splits = line.decode().splitlines()
          if len(line_splits) <= 0:
            break;
          line_str = line_splits[0].strip(',')
          if 'createdAt' in line_str:
            new_ca = '"createdAt": {"__type":"Date","iso":'+line_str.split(': ')[1]+'},\r\n'
            tf.write(new_ca.encode())
          elif 'insertedAt' in line_str:
            new_ia = '"insertedAt": {"__type":"Date","iso":'+line_str.split(': ')[1]+'},\r\n'
            tf.write(new_ia.encode())
          elif 'updatedAt' in line_str:
            new_ua = '"updatedAt": {"__type":"Date","iso":'+line_str.split(': ')[1]+'},\r\n'
            tf.write(new_ua.encode())
          else:
            tf.write(line)
        except:
          print('Somethings wrong!!!')
          traceback.print_exc()
          break

把修改好的 json 数据,使用 LeandCloud 的导入功能重新导入,然后在 Waline 后台管理界面就能看到数据,前端也能正常的提交新评论。

吐槽感言

相信经过上述的折腾后,此时此刻的你,应该对那句“免费的东西总是最贵的”话语有种深刻的体验了吧。但是这番的折腾也还算是值得的,学习到不少的新知识,又一次锤炼的了自己的技术,也正是验证开头说的那句话“办法总比困难多”,对吧!😁