阿里云OSS部署前端

简介:

最近看到一个不错的电商项目,前后端分离,在大佬的教学下使用OSS部署前端,docker部署后端。下面记录大佬教的OSS部署前端的步骤。

项目地址:GitHub - macrozheng/mall: mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。 - macrozheng/mallicon-default.png?t=N7T8https://github.com/macrozheng/mall

 小注:

业务系统开发、企业数字化、企业合规及效率提升等联系

邮箱:xlaodal@163.com

企业官网:www.jiema.net.cn

个人站点:xlaodal.github.io

1.前提:

拥有阿里云账号、有完整可打包的前端项目。

2.创建Bucket:

a:打开阿里云控制台,找到对象存储OSS,打开

b:找到Bucket列表,点击打开:

c:点击创建Bucket,自定义创建----填写名称----选择有地域属性----低频访问存储----本地冗余存储----公共读----其他的不变就行,点击创建。

注意:这里选择的低频访问存储,主要用于自己查看,测试,适用于较少的用户场景

3.打包前端文件:

a:打包命令:

npm run build

注意:

1.项目本身没问题,能运行成功的,可以打包成功。

2.打包的信息在 package.json的文件中查看。

b:打包成功后,有一个dist文件:我们要用里面的static和index.html文件。

4.上传前端文件,static  和 index.html:

5.开通静态页面:

打开指定的Bucket----数据处理----静态页面----设置默认首页 index.html,开通子目录首页

6.绑定域名:

Bucket配置----域名管理----绑定域名----mall.xlaodal.com

注意:这里需要有自己的域名,比如我注册 xlaodal.com,这里可以使用子域名  mall.xlaodal.com

7.体验:mall.xlaodal.com

(用户名:admin  密码 :macro123)

### 如何从前端应用访问阿里云对象存储服务(OSS) #### 配置方法 为了使前端应用程序能够与 OSS 进行交互,开发者需先完成一些必要的准备工作。这包括创建 RAM 用户并赋予其适当的角色以及策略以便于操作 OSS 资源;获取 AccessKeyId 和 AccessKeySecret 用于身份验证。 对于更安全的方式来说,推荐使用临时授权机制 STS (Security Token Service),它允许第三方应用程序获得有限期的安全凭证来进行特定资源的操作而无需暴露长期有效的密钥[^1]。 #### 权限设置 当涉及到从浏览器环境下的 JavaScript 或其他脚本语言直接发起请求时,应该特别注意安全性考量。最佳实践建议采用预签名 URL 的方式让客户端执行上传或下载动作而不必担心泄露敏感信息给最终用户。这种方式下,服务器端负责生成带有过期时间戳的一次性链接供前端调用[^2]。 另外,在某些情况下如果确实需要授予较长时间的有效权限,则可以考虑利用 PolicyDocument 结合 Signature 让指定 IP 地址范围内的设备在一定期限内拥有读写某个 bucket 中的对象的权利。不过这种方法相对复杂且存在潜在风险,因此除非必要不建议轻易尝试。 #### 示例代码 下面是一个基于 HTML5 文件 API 实现图片上传至 OSS 存储空间的例子: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Upload Image to Aliyun OSS</title> </head> <body> <input type="file" id="fileInput"/> <button onclick="uploadFile()">Upload</button> <script src="//cdn.jsdelivr.net/npm/ali-oss"></script> <script> async function uploadFile() { const file = document.getElementById('fileInput').files[0]; // 假设已知这些参数由后端提供 let client = new OSS({ region: 'your-region', accessKeyId: 'your-access-key-id', accessKeySecret: 'your-access-key-secret', stsToken : 'security-token-if-using-sts',// 如果使用STS则填写此字段 bucket: 'your-bucket-name' }); try{ let result = await client.put(file.name, file); console.log(result.url); // 打印返回的结果url }catch(error){ console.error("Error occurred during uploading:", error.message); } } </script> </body> </html> ``` 上述代码片段展示了如何借助 `ali-oss` SDK 完成文件上传功能。需要注意的是实际部署前应当移除硬编码形式存在的认证凭据,并替换为动态获取的服务端接口响应数据以增强系统的健壮性和保密性[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值