在云服务的对象存储上部署网页


因为把博客部署在 VPS 上带宽实在他小了(只有 1M ),访问体验十分不好,于是就迁移到了对象存储 + CDN 的模式。嘿,速度上去了,费用反而下降了。尤其腾讯云还在搞活动,如果只是小量的访问就是不要钱啊~

迁移经历

阿里云和腾讯云大致相同,只不过有些名称和操作细节上不太一样。比如阿里云的对象存储叫 OSS ,腾讯云的叫 COS 。总之在两边都要都要设置对象存储为静态网页模式,把路由搞好。 迁移的时候最好用子账户进行操作,控制权限的同时方便日后自动化部署。

阿里云

进入访问控制台新建一个用户,再进 OSS 控制台赋予其全部权限就好了。

最开始的时候我在用如下的自定义权限策略,比较复杂,现在只配置一点点简单服务的情况下不建议这么做。

{
  "Statement": [
      {
          "Action": "oss:*",
          "Effect": "Allow",
          "Resource": [
              "acs:oss:*:*:bucket_name",
              "acs:oss:*:*:bucket_name/*"
          ]
      }
  ],
  "Version": "1"
}

腾讯云

进入访问管理控制台新建一个子用户并生成一对 API 密钥,也是进 COS 控制台给它权限。

上传脚本

写了个 nodejs 脚本,每次写完东西直接就上传了,很方便。

阿里云: https://github.com/determ1ne/node-aliyun-oss-deployer

腾讯云: https://github.com/determ1ne/node-tencent-cos-deployer

部署前端

如果是静态前端的话,也直接上传就好了。不过之前用 antd pro 时, API 的反向代理就不能用了,因为 OSS 不支持 POST 方法。不知道有没有啥别的解决方法,但是我就不再用代理了,乖乖配了相关的配置,比如 cors 。