Halo使用华为云对象存储服务(OBS)替代服务器本地存储

前言

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

配置需要的参数如下:

绑定域名:(可以不配置)
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配置吧,供大家参考
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方式,小程序是找不到,当然也可以自行修改源码,如果使用对象存储,就不存在这个问题了

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

消息盒子
# 您需要首次评论以获取消息 #
# 您需要首次评论以获取消息 #

只显示最新10条未读和已读信息