关于laravel实现OSS-STS授权前端直传(前后端代码)

本文介绍了如何在 Laravel 中实现阿里云 OSS 的 STS 临时授权,允许前端直接上传文件。首先在阿里云控制台创建 Bucket、RAM 用户和角色,配置跨域和权限。然后在后端,通过 laravel-sts 扩展提供 STS Token,前端使用 ali-oss SDK 进行文件上传。
摘要由CSDN通过智能技术生成

关于阿里云 OSS 的介绍请参考官方文档:阿里云 OSS

出于账号安全的考虑,前端使用 OSS 服务需要走临时授权,即拿一个临时凭证(STS Token)去调用 aliyun-oss SDK。关于临时授权请参考:RAM 和 STS 介绍RAM 子账号STS 临时授权访问 OSS

前端上传文件到阿里云的相关操作可参考:浏览器端上传文件

了解以上概念之后,接下来可以去阿里云 OSS 的控制台进行相关的设置了(前提是开通了 OSS 服务)。

一、阿里云 OSS 控制台配置

1. 创建 Bucket

首先,我们创建一个 bucket,一个存储文件的容器:

接着,我们需要给 bucket 设置跨域,这样我们才能在网页中调用 Aliyun OSS 服务器的接口:

2. 创建 RAM 用户

接下来,前往 RAM 控制台进行子账号和权限的配置。

首先,我们创建一个用户,并给该用户分配调用 STS 服务 AssumeRole 接口的权限,这样待会儿后端就能以该用户的身份给前端分配 STS 凭证了:

我们需要保存一下该用户的 access key 和 access key secret,后端需要以此核实用户的身份。

3. 创建 RAM 角色

该角色即有权限在前端调用 aliyun-oss SDK 上传文件的用户角色,例如我们创建一个只有上传权限的角色,命名为 uploader:

接下来我们需要给该角色分配权限,可以通过创建一条权限策略并分配给角色,该权限策略里面只包含了上传文件、分片上传相关的权限:

策略具体内容为:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "oss:PutObject",
        "oss:InitiateMultipartUpload",
        "oss:UploadPart",
        "oss:UploadPartCopy",
        "oss:CompleteMultipartUpload",
        "oss:AbortMultipartUpload",
        "oss:ListMultipartUploads",
        "oss:ListParts"
      ],
      "Resource": [
        "acs:oss:*:*:这里填写你的bucket名称",
        "acs:oss
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值