【七牛云】博客使用七牛云存储

【七牛云】博客使用七牛云存储

上个月使用 宝塔 +Wordpress 搭建了自己的博客,开始写博客,然后发现有时候博客插入了图片资源之后,加载会有点慢,加上服务器的地址在香港,有时候 文章文字已经加载完成了,但是图片还得一点点加载,就想着有时间了试一下七牛云的存储。刚好这周有点时间就尝试下了。

用之前有一个疑问,在想 网站加载的时候,直接加载本服务器的文件 难道会比 加载七牛云的文件,速度还慢嘛,有点理解不了,但是后面就想清楚了。七牛云使用了CDN 去通过不同的内容分发地址加载文件。当访问我的香港服务器的文章时,首先获取 html 内容,然后通过html中的图片和文件地址去加载对应的文件,如果使用服务器的存储空间,那就得再请求服务器获取每一张图片的内容,本来服务器的ping 就不好,所以造成加载图片的时候比较慢。当使用七牛云做存储的时候,先请求到香港的服务器,获取 html,然后通过 html中的七牛云的地址,从七牛云的CDN(我理解类似于 DNS),去加载七牛云服务器的文件资源,肯定比请求我的香港服务器速度要好很多。试过时候,确实发现七牛云的加载速度快很多。相信这样也有助于在大访问量的时候,缓解我服务器的内存空间。

下面记录一下我的部署过程:

第一次使用七牛云:之前听朋友提到有用过这个东西。他是在gitee搭建的博客使用七牛云做的文件存储,加载的速度快很多,所以自己也想试一下。其实在尝试的时候,有点心慌,毕竟已经写了一些东西了,如果在折腾的过程中,出现了不可避免的问题,估计就得重新开始搞博客,我是个 java 的程序员,对于 php没有那么熟悉,所以在开始的时候,还有有点谨慎的。提前将博客内容做了个备份。

博客备份插件:(All in One WP Migration)

安装插件视图
All-in-One WP Migration 插件安装

也是大家都推荐的插件了,安装启用之后,在仪表盘就能看到插件了,页面很简洁,也很容易理解,先备份然后导出文件,如果系统奔溃了,重新安装一下 wordpress,然后再安装这个插件,把之前备份的文件导入进来,就可以了。我很幸运,在折腾的过程中,系统没有异常。不过以后这个插件可能会在我每次折腾之前使用一次,做一次备份。这样心里踏实多了。

插件功能

然后开始搞七牛云注册:

(邀请链接:https://portal.qiniu.com/signup?code=1h6qhyzzu3adu

七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化PaaS服务。围绕富媒体场景,七牛先后推出了对象存储,融合CDN加速,数据通用处理,内容反垃圾服务,以及直播云服务等。七牛云已经在为 50多万家企业提供服务, 亲历互联网创新创业发展的同时,也深入理解传统企业转型过程中的云服务需求场景,推出了有针对性的一系列行业解决方案。

注册用户,然后申请 对象存储 + CDN加速:

(通过空间设置,设置为公开空间,做测试,之后可以修改成私有空间,私有空间通过 AK +SK 访问,公开空间直接在浏览器使用 url就能访问)

首先填写一个工作空间,这个空间是你以后上传文件使用的,然后会自动为这个空间分配一个 测试域名地址,这个域名是有三十天的使用期,到期之后就不能用了,如果是自己搭建博客,还是得使用自己的域名,当然如果是单纯做测试,可以用这个临时域名,30天过期之后,再换个工作空间换个新的域名就可以了。图片显示的我配置的空间是 yancc ,域名是 image.yancc.top,是HTTPS的,第一次配置的时候,可以选择 HTTP的做个测试。

yancc 在 七牛云海量存储系统 (Kodo) 中属于 Bucket,域名 就是博客请求文件的地址。

域名解析:(使用测试域名不需要解析)

七牛云的注册和配置比较简单,如果使用自己的域名,需要在域名服务器做一个解析,当你在七牛云配置自己的域名的时候,就会看到一些提示,让你去配置域名的CNAME解析,比如我使用的 阿里云的域名,在阿里云添加解析,解析值 是 七牛云给的。

这样就配置完成了。

博客后台使用七牛云插件:

我看了一些七牛云插件,都需要在配置的时候,直接将服务器的文件上传到七牛云,我觉得这样不太好,对文件的存储路径也不太熟悉,然后看到了 WPQiNiu (七牛云对象存储插件) (来自老部落)。它的配置不要求上传本地的文件,后续需要自己手动上传,我感觉这样可以一步一步来,更能了解流程,所以就用了这个插件,这个插件现在在 wordpress 插件安装中 没有找到,我从其他地方下载了一个。

直接导入到 wordpress 插件就可以了。然后启用,在 设置–》七牛云存储设置 中可以看到插件的配置。

存储空间是 你在七牛云填写的 空间名称,也是bucket。是你上传文件的时候,指定的地址。七牛云通过 存储空间 + AK + SK 的方式判断能不能上传文件。

融合CDN加速域名,可以是测试域名 或者 自定义的域名。之后媒体(文章)中的文件请求路径都会按照这个地址来。

AK +SK 在七牛云的 右上角头像下拉菜单,密钥管理中可以看到。自动重命名这个功能还是勾选吧,以后就没有名称重复的问题,不在本地保存这个 选项,我没有勾选,以为是做测试,我也不清楚以后会不会有问题。

保存设置之后,就可以了,这个时候,看 wordpress仪表盘 的媒体中的图片文件不能显示了,因为把所有的图片途径替换成了 七牛云的url,可以通过 F12 查看前端代码看到 。这时候在媒体库添加图片,首先会重命名,然后保存到本地一份,再上传的 七牛云一份。上传成功之后,通过七牛云的控制台可以看到 文件。

后面上传到七牛云的文件,在 wordpress 的媒体中也能显示了,因为请求的 七牛云url中有这个文件。如果上传的七牛云的图片还是不能显示,可能需要设置七牛云的一个图片格式。

设置图片样式
wordpress 显示七牛云的图片缩略图

可能有一些不能显示的,属于本地的文件,后续可以手动上传的七牛云,后面会讲。这时候,你之前写的文章或者首页有图片的地方都显示不出现了,都是因为替换了七牛云的地址。

将本地的图片上传到七牛云:

(如果后续要配置 HTTPS,现在不要上传文件,因为后续要重新申请 空间)

因为在使用七牛云之前,我们使用过一些文件,在将所有的图片替换为七牛云url之后,因为七牛云服务器没有文件,导致页面加载不出来。我们需要手动将文件上传到七牛云。当然有一些插件可以自动完成这个上传操作,也可以尝试下。

在 设置–》七牛云存储配置中有提示:

可以之前的图片都是存储在 本地的,所以使用 Kodo Browser 工具将文件上传到七牛云服务器。Kodo Browser工具下载

首先在本地服务器找到 静态文件,也就是图片,wordpress 的图片文件在

…–yancc.top–>wp-content–>uploads 路径下,把文件打包下载到本地。

然后使用 Kodo Browser 工具上传文件(使用 Bucket + AK + SK 登录)

将从服务器上传的文件上传到这里就可以。需要注意,上传的时候,可能会卡在某一个文件上,或者会卡在某一个已存在的文件上,可以先跳过这个文件,最后再上传一次。(我遇到的,可能是网速问题)所有文件上传完成之后,打开之前的博客文章,图片就能显示了,如果还是不行,可以F12 看下请求路径分析问题。可以通过浏览器 请求 url 的方式看一下可不可以 访问(浏览器请求七牛云空间为公开)

尝试使用七牛云的 HTTPS:

因为我的域名在阿里云,在折腾博客的时候,就申请了 SSL 的证书,配置了SSL。在使用 七牛云的 HTTP的时候,F12看代码 ,有错误提示,好像是说 静态文件需要HTTP 请求。然后就想尝试下 使用SSL配置。其实很简单。

申请域名证书,我的阿里云域名是 yancc.top,我在七牛云配置的加速CDN 是 image.yancc.top。需要一张 image.yancc.top的SSL证书,在阿里云和七牛云都可以申请(好像可以单独为某个域名申请证书,不管你是不是拥有该域名)

阿里云SSL证书申请:

选择单个域名,DV域名级SSL,免费版,取消后面的托管,0元购买。然后填写对应的信息就可以了。大概需要等10分钟收到邮件就可以下载证书了。下载的时候选择 其他,下载文件到本地。

在七牛云重新申请空间,重新绑定域名,选择 HTTPS,填写证书的pem:

这个时候,没有证书可以选择,需要设置 SSL 证书服务,七牛云的产品菜单有 SSL证书服务可以上传,也可以在这里申请证书,也有免费的证书。

上传成功之后,再去创建 CDN 就可以了。七牛云配置完成,回到 wordpress,配置 七牛云存储插件,修改 空间名称为 新的 空间名称,修改 CDN 路径。

之后的博客就是使用 HTTPS 请求七牛云的资源了。但是 HTTPS 好像在 七牛云好像要收费,但我看好像是有 免费的额度的,具体的七牛云也没写很清楚,所以我想试用一段时间。即使是收费,我的博客也没什么访问量,没多少费用,玩玩呗。

如果配置 了七牛云,但是文件上传不到 七牛云的空间,对插件不太熟悉,可以用程序测试下。

提供一个 java的测试程序:

package top.yancc;

import java.io.IOException;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;

public class Test_QiNiu {

	// 要上传的空间--  空间名称
	String bucketname = "yancc";
	
	//设置好账号的ACCESS_KEY和SECRET_KEY
	String ACCESS_KEY="FOFE4MBJDPCvhvckFXoR9uuxvjEkcrSe6Qpj-8BU";
	String SECRET_KEY = "2ePN7HZk2qsorzKYST0zR3EPSE0UyhjHAi5gaVtq";

	// 上传文件的路径
	String FilePath = "D://14.jpg";

	// 密钥配置
	Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
	
	// 创建上传对象
	Configuration cfg = new Configuration();
	UploadManager uploadManager = new UploadManager(cfg);

	public static void main(String args[]) throws IOException {
		new Test_QiNiu().upload();
	}

	// 简单上传
	public String getUpToken() {
		return auth.uploadToken(bucketname);
	}

	public void upload() throws IOException {
	    try {
		// 调用put方法上传
		Response res = uploadManager.put(FilePath, null, getUpToken());
		// 打印返回的信息
		System.out.println(res.bodyString());
	      } catch (QiniuException e) {
		Response r = e.response;
		// 请求失败时打印的异常的信息
		System.out.println(r.toString());
		try {
			// 响应的文本信息
			System.out.println(r.bodyString());
		} catch (QiniuException e1) {
			e1.printStackTrace();
		}
	  }
	}
}

上传成功的提示信息:

over…..

我也是刚开始使用功能七牛云,大家有什么问题和想法可以直接在评论区写,我会看到的。感谢。

0 0 vote
Article Rating
Subscribe
提醒
guest
0 评论
Inline Feedbacks
View all comments