node.js 前端直接分片上传文件与阿里云OSS的方法

这篇具有很好参考价值的文章主要介绍了node.js 前端直接分片上传文件与阿里云OSS的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

解决问题:直接由用户上传文件至阿里云OSS,而非经过中间件/后端

官方文档:分片上传 (aliyun.com)​​​​​​​​​​​

在官方文档中,提供的方法是由中间件上传至oss,调用了path库,但是在浏览器用户没有那么大的权限,我们关注到文档中此表:

类型 参数 说明
必选参数 name {String} Object完整路径,Object完整路径中不能包含Bucket名称。
file {String|File} 表示文件路径或者HTML5文件。

在必选参数中除了提供path,还可以提供HTML5文件,也就是我们常说的file。

给出如下解决:

const OSS = require('ali-oss');
const path = require("path");

let elm = document.getElementById('fileInput')
uploadFile = null

elm.onchange = function (e) {
    let files = e.target.files
    let uploadFile = files[0]
    let render = new FileReader()

const client = new OSS({
  // yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
  region: 'yourRegion',
  // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
  accessKeyId: 'yourAccessKeyId',
  accessKeySecret: 'yourAccessKeySecret',
  // 填写Bucket名称,例如examplebucket。
  bucket: 'examplebucket',
});


const progress = (p, _checkpoint) => {
  // Object的上传进度。
  console.log(p); 
  // 分片上传的断点信息。
  console.log(_checkpoint); 
};

const headers = {  
  // 指定Object的存储类型。
  'x-oss-storage-class': 'Standard', 
  // 指定Object标签,可同时设置多个标签。
  'x-oss-tagging': 'Tag1=1&Tag2=2', 
  // 指定初始化分片上传时是否覆盖同名Object。此处设置为true,表示禁止覆盖同名Object。
  'x-oss-forbid-overwrite': 'true'
}

async function multipartUpload() {
  try {
    const result = await client.multipartUpload('exampledir/exampleobject.txt', uploadFile, {
      progress,
      meta: {
        year: 2020,
        people: 'test',
      },
    });
    console.log(result);
    const head = await client.head('exampledir/exampleobject.txt');
    console.log(head);
  } catch (e) {
    if (e.code === 'ConnectionTimeoutError') {
      console.log('TimeoutError');
      // do ConnectionTimeoutError operation
    }
    console.log(e);
  }
}

multipartUpload();

之后调用multipartUpload()即可。文章来源地址https://www.toymoban.com/news/detail-512108.html

到了这里,关于node.js 前端直接分片上传文件与阿里云OSS的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序文件直接上传阿里云OSS

    第一步 配置Bucket跨域访问 第二步 微信小程序配置域名白名单 以上两步,请参考阿里云官网, 如何在微信小程序环境下将文件上传到OSS_对象存储 OSS-阿里云 https://help.aliyun.com/document_detail/92883.html 安装依赖 wx-oss-upload 然后创建自己的上传方法,引用 wx-oss-upload  然后在选取文

    2024年02月11日
    浏览(39)
  • vue前端直接使用element-ui的upload组件上传到阿里云OSS存储

    因为公司的服务器比较拉吧,所以老大决定将数据文件等上传到阿里云服务器,通过ali-oss方式,这样的话读取文件也比较快  (能看到这说明什么安装element-ui都会了,我就不详细介绍了,直接跳过)  在执行下面操作之前,你要确定你的阿里云能看到上边这个页面   这里主

    2024年02月10日
    浏览(42)
  • 阿里云OSS上传视频,可分片上传

    uniappH5实现 阿里云OSS上传视频  示例图: 上传视频完整示例代码: 使用npm安装SDK开发包,安装命令为 accessKeyId 和 accessKeySecret 还有 bucket 替换成你的就行。 multipartUpload 的第一个入参是: 文件路径 + 文件名称 第二个入参是文件对象

    2024年02月01日
    浏览(22)
  • 阿里云oss分片上传示例

    oss文件服务器分片上传官方文档参考 : 分片上传 - 对象存储 OSS - 阿里云 官方文档写的更加详细,更多内容请参考官方文档 1.初始化分片事件,向oss服务器获取全局唯一的uploadId 获取uploadId,后续分片都需带上uploadId,标识同一个文件对象。 另外初始化操作时已经指定文件访问链

    2024年02月16日
    浏览(35)
  • Node.js 操作百度网盘实现文件上传(小文件上传,大文件分片上传)

    Node.js 操作百度网盘实现文件上传(小文件上传,大文件分片上传) 前提准备:获取百度网盘的授权码 https://pan.baidu.com/union/doc/al0rwqzzl

    2024年02月09日
    浏览(34)
  • 【JS】前端分片上传大文件(支持1G以上的超大文件)

           如果将大文件一次性上传, 耗时会非常长,甚至可能传输失败 ,那么我们怎么解决这个问题呢?既然大文件上传不适合一次性上传,那么我们可以尝试将文件分片散上传。 这样的技术就叫做分片上传。分片上传就是将大文件分成一个个小文件(切片),将切片进行

    2024年04月11日
    浏览(36)
  • 微信小程序 - 超详细 “纯前端“ 将文件上传到阿里云 OSS,最新阿里云 OSS 直传音视频、图片、word、excel、ppt、office 文档(全程无需后端,前端文件直传阿里云oss服务器)

    网上的教程乱七八糟却文件少代码(并且没注释),而且都已经很老了,对于新手来说真的无从下手。 本文站在新手小白的角度, 实现微信小程序开发中,“前端直传” 上传文件到阿里云oss对象存储的详细教程, 无需后端 (纯前端自己完成所有签名、上传),保证 100% 成

    2024年02月13日
    浏览(114)
  • vue项目中上传文件到阿里云oss方法

    在项目需求中,关于图片、视频、文件等上传文件,一般不是直接放置在自己的后台服务器上,一般都会购买云服务进行存储。譬如阿里云的oss对象存储。 那么,前端开发项目中,涉及到上传的功能时,我们不是把文件上传到自己的后台服务器,而是阿里云上面去,然后拿到

    2024年02月06日
    浏览(45)
  • 前端通过STS方式直传至阿里云OSS(包含文件上传、下载和自动刷新stsToken)

    最近项目业务需要实现一个资源管理的功能,就简单学习了一下前端怎么使用阿里云OSS。 原本这些事情都是后端实现的,但这样子有许多缺点,比如文件上传需要走两次,先上传到后端,再由后端上传至阿里云OSS,既占用带宽也浪费时间;此外,前端还不能获取到真正的上传

    2024年01月19日
    浏览(53)
  • 【flutter直接上传图片到阿里云OSS】

    flutter直接上传文件到阿里云需要获取凭证,通过调用阿里云获取凭证的接口能拿到下面这些参数 获取凭证的接口一般是后台去对接阿里云,前端调后台接口即可。(STS.的这种AccessKeyId安全性高一些) 1.获取OSSToken信息 token信息实体类 上传方法 调用方式 以上直接是上传图片到

    2024年02月11日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包