vue+oss 纯前端文件上传

let OSS = require('ali-oss');
let client = new OSS({
  region: '配置自己的',
  //云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,部署在服务端使用RAM子账号或STS,部署在客户端使用STS。
  accessKeyId: '配置自己的',
  accessKeySecret: '配置自己的',  bucket: '配置自己的' })

注:以上是配置OSS

文件上传api接口:

const put = async (ObjName, fileUrl, progressFun) => {
  try {
    let result = await client.multipartUpload(`${ObjName}`, fileUrl, progressFun) return result 
} catch (e) { console.log(e) } 
}
注:ObjName 可以是自定义文件名例如(dells.txt)也可以  `${userId}/${nowDay}/${ObjName}`  例如(/userId/nowDay/dells.txt)这样做文件目录  上传成功链接是这样的http://oss官网/userId/nowDay/dells.txt

  fileUrl 是文件file对象 或者 blob数据以及OSS buffer

  progressFun 是获取上传文件进度(可要可不要)

暂停上传:

async function download(fileUrl, filename) {
  return await client.signatureUrl(fileUrl, {
    response: {
      'content-disposition': `attachment;filename=${encodeURIComponent(filename)}`
    }
  })
}
注释:fileurl:需要下载的文件连接   filename:下载的文件名字               (其中用到转码)

文件下载api接口:

async function download(fileUrl, filename) {
  return await client.signatureUrl(fileUrl, {
    response: {
      'content-disposition': `attachment;filename=${encodeURIComponent(filename)}`
    }
  })
}注释:fileurl:需要下载的文件连接   filename:下载的文件名字               (其中用到转码)

调用传参后 会返回一个下载连接 使用以下方法打开下载连接;

openUrl(url, fileName) {
      let a = document.createElement("a"); //添加a标签元素
      a.setAttribute("href", url);  //给a标签增href属性
      a.setAttribute("download", fileName); //给a标签新增download属性 下载文件名
      a.setAttribute("target", "_blank"); //新增标签页
      a.click(); 
      a.remove();
    },
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    余生动听阅读 10,978评论 0 11
  • 彩排完,天已黑
    刘凯书法阅读 4,518评论 1 3
  • 没事就多看看书,因为腹有诗书气自华,读书万卷始通神。没事就多出去旅游,别因为没钱而找借口,因为只要你省吃俭用,来...
    向阳之心阅读 5,030评论 3 11
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 130,371评论 2 7

友情链接更多精彩内容