TypeScript前端上传文件到MinIO怎么实现(minio,typescript,web开发)

时间:2024-05-09 22:56:36 作者 : 石家庄SEO 分类 : web开发
  • TAG :

    TypeScript%E5%89%8D%E7%AB%AF%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6%E5%88%B0MinIO%E6%80%8E%E4%B9%88%E5%AE%9E%E7%8E%B0

MinIO 是一款高性能、分布式的对象存储系统. 它是一款软件产品, 可以100%的运行在标准硬件。即X86等低成本机器也能够很好的运行MinIO。

它有3个API可供调用:

putObject 从流上传

fPutObject 从文件上传

presignedPutObject 提供一个临时的上传链接以供上传

使用1和2的方式的话,在前端需要暴露出连接MinIO的访问密钥,很不安全,而且官方的Js客户端压根就没想过开放给浏览器.
而3的话,可以由服务端生成一个临时的上传链接提供给前端上传之用,而无需要暴露访问MinIO的密钥,非常的安全,我采用的是第三种方式.

在TypeScript下,我们可用的有三种方式实现文件上传:

XMLHttpRequest

Fetch API

Axios

需要注意的是: 事实上,后两种API都是封装的XMLHttpRequest.

我试过了用POST去上传文件,但是显然的是:我失败了.必须得用PUT去上传.

看了不少文章都是这么干的: 构造一个FormData,然后把文件打进去,如果用putObjectfPutObject这两种方式上传,这是没问题的,但是使用presignedPutObject则是不行的,直接发送File就可以了.

如果使用以上的方式上传,文件头会被插入一段数据,看起来像是这样子的:

它是遵照了 rfc1867 定义的协议.

直接使用XMLHttpRequestFetch API都会自动填写成为文件真实的Content-Type.而Axios则不会,需要自己填写进去,或许是我不会使用Axios,但是这是一个需要注意的地方,否则在MinIO里边的Content-Type会被填写成为Axios默认的Content-Type,或者是你自己指定的.

本文:TypeScript前端上传文件到MinIO怎么实现的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:VScode更新后安装vetur无法格式化vue文件如何解决下一篇:

17 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18