OSS服务端签名后直传

使用应用程序上传文件的缺点

  1. 慢: 先将文件发送至后端 在由后端调用阿里oss进行上传 而直传没有中转这一步 直接拿着密钥 调用oss进行上传
  2. 扩展性差: 若之后用户增多 增大后端服务器的压力
  3. 费用高: 因为oss上传上行流量是不收费的 直传oss 可以省去应用服务器的费用

OSS服务端签名后直传

服务端使用

首先导入包并配置好key 和 endpoint bucket
OSS服务端签名后直传

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>aliyun-oss-spring-boot-starter</artifactId>
        </dependency>

导入net.sf.json-lib 这个包的最后版本更新的时候jdk为1.5 所以还要指定jdk版本

        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <classifier>jdk15</classifier>
    </dependency>

文档地址: https://help.aliyun.com/document_detail/91868.htm?spm=a2c4g.11186623.0.0.16072214bdo6s4#concept-ahk-rfz-2fb
可以自定义文件上传前缀
OSS服务端签名后直传

根据文档复制粘贴即可 若后端已经配置过跨域请求 得把最后两句删掉 否则跨域重复会报错
OSS服务端签名后直传
服务端返回的密钥
OSS服务端签名后直传

前端调用

文件上传需要以下几项数据 大部分可以从后端请求到
success_action_status 若不设置 上传成功状态码为204 key为文件名称 前缀必须为dir

      policyData: {
        OSSAccessKeyId: '',
        policy: '',
        signature: '',
        key: '',
        success_action_status: 200
      }

设置上传的请求体
OSS服务端签名后直传
在上传组件中定义要携带的数据
OSS服务端签名后直传
action 为policy中的host

上一篇:php上传整个文件夹


下一篇:vue+elementUi+oss上传