七牛云回收测试域名的应对办法

本贴最后更新于 1968 天前,其中的信息可能已经时过境迁

2018 年 9 月,七牛云回收了所有测试域名,这直接导致各种博客系统的所有图片资源全部失效,包括了我自己的 solo 博客,这个项目记录了这个问题的解决办法

案例代码:github/hand-solo-pic-url

解决步骤

  • 登录七牛云后台,配置自己的域名

    • 详细步骤:七牛云后台 -> 域名管理 -> 添加域名 -> 添加自己的域名记录(比如我的 oss.liumapp.com)

    • 注意事项:七牛云会要求您的域名必须完成备案,否则无法添加,并且添加成功后,七牛云会提供一串 CNAME 地址,您需要把这串 CNAME 地址跟自己的域名解析起来。

  • 在七牛云后台配置对象存储

    • 详细步骤:七牛云后台 -> 对象存储 -> 选择自己的存储空间 -> 内容管理 -> 设置外链默认域名为刚刚配置成功的域名(oss.liumapp.com)

    • 注意事项:添加域名后,需要等待七牛云的审核,审核通过后才可以进行这一步的操作,操作完成后,可以在内容管理列表中,直接选择一张图片来看看外链地址:(一般长这样:http://oss.liumapp.com/004a8d56bba1416a8e004447a65bcf08.jpg)

  • 接下来修改 solo 数据库,把所有博文的图片资源地址中的测试域名,替换为自己刚刚设置好的域名(oss.liumapp.com)即可

    • 替换 sql:

          SET SQL_SAFE_UPDATES = 0;
           UPDATE b3_solo_article SET articleContent = REPLACE( articleContent,'http://你之前七牛测试域名地址','http://oss.liumapp.com') ;
      

    我之前的七牛测试域名是:http://om40sen9v.bkt.clouddn.com,那么 sql 就是:

          UPDATE b3_solo_article SET articleContent = REPLACE( articleContent,'http://om40sen9v.bkt.clouddn.com','http://oss.liumapp.com') ;
    

    在 sql 命令行或者相关工具中对文章表(大 D 在新版本的 solo 中似乎改动了数据表,所以您在操作之前,请确认一遍表名与字段名是否匹配)进行修改。

      各位看官读到这里,基本上就解决了自己博客图片资源路径失效的问题,但是我这里还想做一些特殊操作,接下来记录的内容,介绍了如何将七牛云的图片资源转移到GitHub上(换句话说,就是利用GitHub作为自己站点的OSS存储服务,我之所以想要这么折腾一番,是希望在后续将博客的前后端进行分离实现,前端整体部署到GitHub,后端则利用自己的ECS资源仅仅提供API服务)。            
    
  • 使用 GitHub 存储所有博客图片:

    • 首先可以使用官方推荐的 python 脚本(script/download-process.py)将七牛云 oss.liumapp.com 空间上的所有资源下载下来

    • 对 python 不熟悉的同学,手撸 Java 代码,再通过七牛云的 api 也是可以达到批量下载的目的(src/main/test/.../APITest.java)

      • APITest.java 的 getItemList 方法为获取你七牛云空间的所有文件信息

      • APITest.java 的 downloadAllFile 方法为下载你七牛云空间的所有文件

      • 注意事项:在运行之前,你需要首先配置 src/main/java/.../resources/application.yml 文件,填写自己的七牛云 appkey 以及 secretKey 等信息

      • 另外在下载过程中,要考虑目录层级、目录权限的事情(案例代码里面已经全部解决这些问题了,如果看官自己写的话请留意一下)

        附上一张下载完成后的截图

        1.png

    • 完成所有图片的下载后拷贝上传 GitHub...再同样的方法修改图片 url 即可,记得再最后面引用图片的时候带上 ?raw=true 参数

  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1425 引用 • 10043 回帖 • 469 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3168 引用 • 8207 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • liumapp
    作者

    涉及到敏感内容,您别截图了,测试单元的 getItemList ()返回结果成功了吗?

    2 回复
  • 其他回帖
  • liumapp
    作者

    我看到很多 null,奇怪,如果根据这个 list 遍历的话,确实会产生我没有捕获到的异常,建议您在代码(第 84 行的 catch 后面)里面加一个 catch exception 简单处理一下

    1 回复
  • yinhuiming

    图片.png

  • yinhuiming

    图片.png

  • 查看全部回帖
liumapp
Github: https://github.com/liumapp 杭州

推荐标签 标签

  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 152 关注
  • 音乐

    你听到信仰的声音了么?

    59 引用 • 509 回帖
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖
  • H2

    H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制,同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。

    11 引用 • 54 回帖 • 642 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    198 引用 • 120 回帖 • 1 关注
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 369 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖 • 1 关注
  • V2Ray
    1 引用 • 15 回帖 • 1 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 462 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    313 引用 • 1666 回帖
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    14 引用 • 7 回帖 • 1 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    85 引用 • 1201 回帖 • 449 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    51 引用 • 226 回帖
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 693 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 56 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 6 关注
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖 • 5 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    7 引用 • 26 回帖
  • 反馈

    Communication channel for makers and users.

    123 引用 • 906 回帖 • 192 关注
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 404 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    75 引用 • 145 回帖
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 10 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖
  • Sphinx

    Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。

    1 引用 • 180 关注
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    131 引用 • 3639 回帖
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 6 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 429 关注