前言

之前使用的服务器本地存储,用了半年左右发现,存储量较大,而且访问速度也很慢,就考虑使用OBS存储方式,由于我使用的是华为云服务器,所以这里也选用华为的OBS,其实和阿里云差不了多少,下面让我们开始配置吧:

配置需要的参数如下:

1
2
3
4
5
6
7
8
绑定域名:(可以不配置)
Bucket(桶名):
Access Key:
Access Secret:
文件目录:(可以不配置,使用根目录即可)
图片处理策略:(可以不配置)
缩略图处理策略:
EndPoint:

下面开始配置

购买OBS

前往华为云官网购买OBS存储服务,费用不高,40GB/9元/年,其实和阿里OSS差不多,自己根据需要选择吧
购买完成后,创建一个桶名,这里桶名不能其它人重名

注意这里的桶权限修改为公共读,防止链接方式不能访问图片

获取key及secret

  • 登录华为云控制台,找到对象存储服务OBS,并进入对应服务,即可看到如图所示

  • 获取key及secret
    一共可以创建两个访问秘钥,我之前创建过,所以直接使用,如果之前没有创建过,那么自己创建一个即可

获取EndPoint

进入具体的桶,点击总览,获取EndPoint参数

验证

至此参数都已经获取到了,打开halo后台,将对应参数配置好,上传附件验证

发现我们图片已经上传到华为云OBS上了,然后在halo前端网页看看,是否能正常访问

华为云OBS其它策略

华为云提供了一部分策略,我们可以使用,由于服务器上我配置nginx防盗链,所以桶策略这里我就不配置了(说白了懒,每次登录控制台我都觉得麻烦,能不上控制台就不上),在这里我配置了静态网站托管,这东西还蛮好用的,把你对应html项目传到桶里,然后配置具体页面,比如:首页(index.html),404页面之类的,还是蛮不错的,当然用nginx也可以实现

  • 下面提供一下我服务nginx配置吧,供大家参考
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
31
32
33
34
35
36
37
38
39
server {
listen 443 ssl;
server_name domian; #用户服务器的域名
client_max_body_size 1024m;
ssl_certificate /usr/sbin/cert/scs1661344500833_blog.lovelu.top_server.crt;
ssl_certificate_key /usr/sbin/cert/scs1661344500833_blog.lovelu.top_server.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
error_page 502 503 404 default.html;
location = /default.html {
root /usr/share/nginx;
}
location /upload/ {
#域名白名单,去掉阻止所有非本站请求
valid_referers none blocked server_names *.lovelu.top servicewechat.com gitee.com *.baidu.com *.51.la;
set $flag 1;
if ($invalid_referer) {
set $flag 0;
}
# 正则表达式匹配
if ($request_uri ~* "(/logo.png)|(/fangdaolian.png)") {
set $flag 1;
}
if ($flag = 0) {
rewrite ^/ https://domian/upload/2022/07/fangdaolian.png;
}
access_log off;
proxy_pass http://127.0.0.1:8090;
}
location / {
proxy_pass http://haloMaste;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

我的防盗链也是在nginx中配置的,当然也可以OBS中配置,看个人吧

此处建议大家还是使用对象存储,为什么呢?因为halo小程序,这里指的是官方付费的版本,里面引用的图片,直接使用![](),也就是md方式,小程序是找不到,当然也可以自行修改源码,如果使用对象存储,就不存在这个问题了

防盗链也可以看我另一篇博文防盗链配置