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

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

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 构思 - 分布式社区网络)。

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

    1443 引用 • 10082 回帖 • 498 关注
  • Java

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

    3201 引用 • 8216 回帖 • 2 关注

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • yinhuiming via macOS

    成功了成功了

  • 其他回帖
  • yinhuiming via macOS

    图片.png

    2 回复
  • liumapp
    作者

    image.png
    这个域名有问题,估计您需要去七牛云检查下了,如果直接 http 访问不了的话,用代码去下载肯定也是不行的

  • liumapp
    作者

    这里的配置呢?
    image.png

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

推荐标签 标签

  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 444 关注
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 34 关注
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    284 引用 • 248 回帖
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖 • 10 关注
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    36 引用 • 200 回帖 • 33 关注
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    171 引用 • 1537 回帖
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖 • 2 关注
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖 • 1 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    10 引用 • 15 回帖 • 5 关注
  • 阿里巴巴

    阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的 18 人,于 1999 年在中国杭州创立,他们相信互联网能够创造公平的竞争环境,让小企业通过创新与科技扩展业务,并在参与国内或全球市场竞争时处于更有利的位置。

    43 引用 • 221 回帖 • 57 关注
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 567 关注
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖
  • 服务

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

    41 引用 • 24 回帖
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 441 关注
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖
  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    228 引用 • 476 回帖 • 1 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 613 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    142 引用 • 442 回帖
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 712 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    172 引用 • 534 回帖
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    91 引用 • 59 回帖 • 3 关注
  • 分享

    有什么新发现就分享给大家吧!

    248 引用 • 1794 回帖 • 1 关注
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 394 关注