当前位置: 首页 > 网络应用技术

将静态资源推向OSS

时间:2023-03-06 12:32:28 网络应用技术

  本文需要OSS(对象存储)云服务。它可以独自购买几美分,我们可以将静态资源上传到OSS并为OSS提供CDN服务。

  在本文中,该项目CRA-DEPLOY示例也被上传到OSS处理。

  假设将具有哈希值的静态资源推向CDN。目前,静态资源的地址是:。这是我们将在WebPack中配置的。

  在中间,我们进一步封装,读取其源代码并了解其配置。

  可以看出,可以通过设置环境变量public_url来配置CDN地址。

  将静态资源上传到云服务时,我们需要一个AccessKey/AccessSecret来获得权限。可以参考文档创建AccessKey

  它是OSS中的存储空间。对于生产环境,可以为每个项目创建一个单独的存储桶,在测试环境中,多个项目可以共享存储桶。

  创建水桶时,您需要注意以下问题。

  对于端点的选择,您可以参考访问域名和数据中心

  最终的public_url是,例如本文的public_url例如项目。

  但是,您还可以配置CNAME记录并使用域名。

  在以下命令行和代码示例中,我们将CRA-Deplay项目的所有静态资源上传到存储桶中。

  在OSS上创建一个水桶,将静态资源上传通过官方工具Ossutil。

  在资源上传之前,需要权限。

  该命令可以将本地资源上传到OSS。缓存策略与上一篇文章一致:

  为了方便起见,可以将两个命令保持到中间

  另一种方式,通过官方SDK:Ali-Oss准确控制资源:

  该脚本被省略。

  PS:上传OSS的配置文件位于脚本/uploadoss.js中,可以通过用脚本控制静态资源来上传。

  PS:此Dockerfile配置位于Cra-Deploy/oss.dockerfile中

  由于使用代码的管理,我们无法将敏感信息写入Dockerfile。

  因此,arg在这里被用作变量。可以传递或在中传递ARG。

  PS:此组合配置位于Cra-Deploy/Docker-Compose.yaml中

  在配置文件中,可以将其传递。

  也不允许敏感数据。目前,环境变量通过环境变量传递。

  PS:您可以在本地传递主机环境变量的值。CI呢,生产环境呢?CI分会将在稍后宣布。

  首先,手动配置主机的环境变量,与Dockerfile中的环境变量相同的名称:

  目前,您可以将主机的主机传递到Docker.args中的docker-compose:dockerfile:

  跑,成功!

  在连续优化了几篇文章之后,当我们使用对象存储服务时,镜像中实际上只有几个文件。

  我们可以走得更远,将所有静态资源放在公共服务中吗?

  是的,实际上,也可以像这样配置OSS/COS(对象存储服务),但是它更麻烦,例如重写,重定向规则和其他配置。

  如果您既没有个人服务器也没有个人域名,则可以将您的前端网站放在以下免费托管服务平台上。

  通过本文,我们将静态资源部署到CDN(几乎相当于CDN),这与大多数公司的生产环境一致。

  但是,最好在测试环境中上传到OSS。毕竟,上传到OSS需要额外的时间,并且对测试环境没有重要意义。

  但是实际上,在上传和存储阶段可以进一步优化OSS。请阅读下一篇文章。

  原始:https://juejin.cn/post/7104288145432444965