摘要: 本文转载自 阿里云CodePipeline客户“小草”的个人博客,Step By Step的呈现了从0配置一个nodejs 静态网站发布到OSS,并通过CDN回源加速的过程。
本文转载自 阿里云CodePipeline客户“小草”的个人博客,原文地址:
http://www.forkjoin.org/2017/08-21-CodePipeline-ossweb/
现在流行前后端彻底分离,前端生成webpack 打包的静态文件。可以通过 CodePipeline构建后发布到oss 进行发布前端。下面进行详细讲解
第一步 申请开通 CodePipeline
CodePipeline 地址
第二步 创建CodePipeline任务
1. 创建一个nodejs任务
2. 详细设置
如下图,配置好git仓库和账号,以及分支
配置项目构建命令,比如我的项目修改成
3. 部署方式 选择不需要部署
第三步 准备oss
1. 新建 Bucket 选择标准存储,权限配置成公共读
下面测试都默认 bucket 名字为 test-weiapp-web
2. 配置访问控制 RAM
配置ram账号权限给构建使用,一定要配置好ram 权限。理由如下
-
防止误删除了其他 bucket 的文件等
-
ossutil 工具太危险!!!
-
安全
3. 创建策略
在访问控制界面选择 > 策略管理 > 新建授权策略 > 选择空白模板 > 输入策略 > 创建成果
策略配置参考如下:
Resource的详细格式是 acs:oss:{region}:{bucket_owner}:{bucket_name}/{object_name}
注意: bucket_name 是oss-cn-beijing,而且不是cn-beijing
访问控制参考 授权策略的图形界面生成器
4. 创建子账号并授权
在访问控制界面选择 > 用户管理 > 新建用户 > 输入用户名 > 勾选生成AccessKey > 确定 > 下载Ak 配置文件
在访问控制界面选择 > 用户管理 > 找到刚刚创建的用户 > 点击授权 > 找到上面创建的授权策略 > 添加 > 确定
第四步 修改项目
修改下面shell 内的 OSS_KEY_ID、OSS_KEY_SECRET、OSS_END_POINT和OSS_DISTPATH并加入到自己项目的合适位置
删除文件部分的shell 可以不要,具体请参考自己项目的结构。因为我的项目生成大量hash文件名的文件,如果不删除,oss 内无用文件将会越来越多。但是这样的删除过程会增加部署时间,且在一定时间内网站不可以访问;所以我建议修改项目结构,加入版本,把这些变化文件加入到一个带版本号的子文件夹,这样每次只删除第n个版本前的文件。
第五步修改 CodePipeline配置
-
如果不需要测试可以删除测试部分
-
添加构建步骤"执行shell"
-
点击立即执行开始一次构建
添加执行第四部的sh,注意相对路径是项目根路径,在我的项目内是 publish/upload.sh
第六步 修改oss 配置
对象存储 > 域名管理 > 绑定用于域名 > 输入域名 > 开启cdn ->自动添加cname
如果域名不在当前阿里云账号下或者不在阿里云,那么亲手动添加 cname。
点击确定后多等几分钟。开启cdn 扥过程比较慢。需要提前打开cdn功能
当域名添加完毕后
对象存储 > 域名管理 > 找到刚刚添加的域名 > 开启CDN 缓存自动刷新
第七步 router 导航的问题
如果项目使用react-router 利用history api 进行导航,那么怎么解决导航的问题?
1. 修改oss 利用404页面
对象存储 > 基础设置 > 静态页面 > 默认首页和默认 404 页都修改成 index.html
但是这种办法有一个问题,除了首页外的其他页面请求的状态码都是 404。在某些网络情况下404 会被劫持!所以这个办法实际上不完美!
2. 利用 镜像回源
利用"镜像回源"把请求重新定向回首页
对象存储 > 基础设置 > 镜像回源 > 创建规则 > 重定向
第八部 cdn 配置
CDN > 域名管理 > 找到刚刚添加的域名 > 性能优化 > 开启智能压缩
原文链接:https://yq.aliyun.com/articles/175889
相关推荐
10. **与其他服务集成**:阿里云OSS桌面连接工具还可以与阿里云的其他服务,如ECS(弹性计算服务)、CDN(内容分发网络)等无缝集成,提供一体化的云计算解决方案。 总的来说,阿里云OSS桌面连接工具为开发者和企业...
6. **API与SDK**:阿里云提供了丰富的API接口和多语言SDK,方便开发者集成OSS服务到应用程序中,例如Java、Python、Node.js等。 通过"阿里云对象存储操作流程.pdf",你可以详细了解到如何实际操作阿里云OSS,包括...
而阿里云OSS(Object Storage Service)是一种大规模、低成本、高可靠的云存储服务,适合存储静态资源如图片、视频、文档等。 **一、ueditor与阿里云OSS集成步骤** 1. **创建阿里云OSS Bucket** - 首先,登录阿里...
阿里云oss dll
本项目“上传文件到阿里云OSS-uniapp.zip”专注于在uni-app平台上实现对阿里云OSS的文件上传功能,特别适合于微信小程序和H5应用。 uni-app是一个多端开发框架,允许开发者编写一次代码,部署到多个平台,包括微信...
【标题】"帝国CMS-Ecmsshop阿里云OSS插件"是一个专门为帝国CMS(EmpireCMS)和Ecmsshop电子商务系统设计的插件,用于集成阿里云对象存储服务(Object Storage Service,简称OSS)。这个插件旨在帮助网站管理员更...
Java 实现上传文件到 OSS(阿里云)的功能示例 Java 实现上传文件到 OSS(阿里云)的功能示例是指通过 Java 语言实现将文件上传到阿里云对象存储服务(OSS)的功能。本示例主要介绍了 Java 实现上传文件到 OSS 的...
golang阿里云oss图片上传
在IT行业中,网站内容管理系统的...通过这样的整合,不仅可以提升网站的运行效率,还能享受到阿里云OSS提供的高可用性和安全性。对于那些需要频繁上传和管理图片的网站来说,这种集成无疑是一个值得考虑的优化方案。
通过学习和理解这段代码,你可以快速掌握如何在自己的项目中集成阿里云OSS的图片上传功能。 总结来说,使用JavaScript和`plupload`实现图片上传到阿里云OSS,涉及到的关键技术包括:前端与后端的交互、`plupload`...
阿里云OSS(Object Storage Service)则是一种云存储服务,可以用来存储大量的静态资源,如图片、视频等。本项目是关于如何将微信小程序中的图片上传至阿里云OSS的实践教程。 首先,我们需要理解微信小程序的生命...
Thinkphp做的阿里云OSS后台,PHP全套代码,Thinkphp3.2整合阿里云OSS图片,thinkphp3.2实现图片上传至OSS可减少服务器压力,节省宽带,安全又稳定,阿里云OSS对于做负载均衡非常方便,不用传到各个服务器了。...
这个“阿里云oss web上传demo.rar”包含了一整套实现此功能的代码和配置,适用于快速集成到自己的项目中。 首先,我们需要了解阿里云OSS的API和SDK。阿里云提供了多种语言的SDK,包括Java、Python、Node.js、PHP、...
PHP一键上传图片到阿里云OSS对象存储,自己编写的代码,有一些注释。已在本地测试,运行成功。注意:1.有阿里云的对象存储;2.要获取AccessKey及找准Endpoint,修改代码中相应的部分;3.点击即上传,只支持图片格式...
标题中的“帝国CMS百度编辑器图片附件同步整合阿里云OSS”表明了这个项目是关于将帝国CMS(Empire CMS)系统中使用的百度编辑器(UEditor)与阿里云的对象存储服务(OSS)进行集成,目的是实现图片附件在上传时能够...
集成前端OSS(Object Storage Service)上传图片至阿里云服务器是提高用户体验和简化内容管理的重要步骤。本文将详细讲解如何实现这个功能,以及其中涉及的关键知识点。 首先,Summernote是一个流行的开源富文本...
同时,由于OSS与阿里云其他服务(如ECS、RDS等)的无缝集成,运维人员在进行云环境的日常管理时,可以更加便捷地进行数据迁移和备份。 “oss-browser-win32-ia32”是针对Windows 32位系统的版本,这表明阿里云同时...
在本文中,我们将深入探讨如何将PbootCMS插件与七牛云和阿里云OSS集成,以优化图片资源的加载速度,提升网站性能。PbootCMS是一款基于PHP的轻量级网站内容管理系统,适用于快速构建企业网站。针对V3.1.2版本,我们...
OSS广泛适用于多种场景,包括数据备份、媒体资产存储、静态网站托管、移动应用资源存储等。对于Windows用户,阿里云提供了专用的OSS客户端工具,便于用户更方便地进行文件上传、下载以及管理。 "阿里云OSS客户端...
阿里云OSS(Object Storage Service)桌面客户端工具是一款专为用户设计的便捷数据管理软件,主要用于与阿里云的OSS服务进行交互。OSS是阿里云提供的海量、安全、低成本、高可靠的云存储服务,它允许用户存储和检索...