前端文件直传阿里云对象存储ali-oss

  • Post author:
  • Post category:其他




1、npm i ali-oss安装阿里云sdk



2、上阿里云对象存储设置跨域访问

  • 进入 OSS 管理控制台 界面。
  • 在左侧存储空间列表中,单击目标存储空间名称,打开该存储空间概览页面。
  • 单击 基础设置 页签,找到 跨域设置 区域,然后单击 设置。
  • 单击 创建规则,打开 设定跨域规则 对话框。
  • 设置跨域规则:

    – 来源:指定允许的跨域请求的来源。允许多条匹配规则,以回车为间隔。每个匹配规则允许使用最多一个“

    ”通配符。

    – 允许 Methods:指定允许的跨域请求方法。

    – 允许 Headers:指定允许的跨域请求 header。允许多条匹配规则,以回车为间隔。每个匹配规则使用最多一个“

    ”通配符。

    – 暴露 Headers:指定允许用户从应用程序中访问的响应头(例如一个 Javascript 的 XMLHttpRequest 对象)。

    – 缓存时间:指定浏览器对特定资源的预取(OPTIONS)请求返回结果的缓存时间。

    – 说明: 每个存储空间最多可以配置 10 条规则。

    在这里插入图片描述



3、需要获取到一些秘钥和基础的信息

我这里是通过后台返回的一个临时秘钥,获取的

下面是封装的一个方法

const OSS = require('ali-oss');
import commonApi from '@/api/messageCenter/common'
export default function UploadVideo(file) {
  //获取临时秘钥信息
  return commonApi.queryAliYunSts().then((res) => {
    let client = new OSS({
      region: 'oss-cn-beijing',// region填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
      bucket: 'spacebusiness', // 填写Bucket名称。
      accessKeyId: res.data.accessKeyId,// 从STS服务获取的临时访问凭证。临时访问凭证包括临时访问密钥(AccessKeyId和AccessKeySecret)和安全令牌(SecurityToken)。
      accessKeySecret: res.data.accessKeySecret,
      stsToken: res.data.securityToken,
      expiration: res.data.expiration,
      // secure: true,
    });
    // 支持File对象、Blob数据以及OSS Buffer。
    // 填写本地文件的完整路径。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件。
    // 填写上传的内容。
    //const data = new Blob('Hello OSS');
    // 填写上传的内容。
    //const data = new OSS.Buffer('Hello OSS');
    try {
      // 可以通过自定义文件名(例如exampleobject.txt)或目录(例如mytestdoc/exampleobject.txt)的形式实现将文件上传到当前Bucket或Bucket中的指定目录。
      return client.put(file.name, file);

    } catch (e) {
      console.log(e);
    }
  })

}



4、返回信息

在这里插入图片描述

附上官方文档:https://help.aliyun.com/document_detail/64047.htmlspm=a2c4g.11186623.6.1219.1df323f29m2ILz



版权声明:本文为weixin_44730897原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。