• 首页
  • 博客
  • 项目
  • 留言墙
  • 工具集

动态更新

喜欢我的内容的话不妨订阅支持一下 🫶
加入其他 2 位订阅者,每月一封,随时可以取消订阅。

© 2025 Koya. 网站已开源:GitHub   Fork CaliCastle

首页博客项目留言墙工具集
总浏览量 4.3万
最近访客来自 Singapore, SG🇸🇬
  • 介绍
  • File和Blob
  • File转Blob
  • Blob转File
  • Blob和Buffer
  • Blob转Buffer
  • Buffer转Blob
  • String和Buffer
  • String转Buffer
  • Buffer转String
  • 上传到AWS S3
  • 完整示例
  • 总结
  • 延伸
  • 前端构造文件对象上传至服务器或者云存储
在Node.js中使用File、Blob、Buffer、String相互转换并上传至OSS
2023-03-15 16:16:00nodejs, 技术

在Node.js中使用File、Blob、Buffer、String相互转换并上传至OSS

在Node.js和前端中使用File、Blob、Buffer、String相互转换,并最终上传到云存储商的流程

3,113次点击4分钟阅读

介绍

在Node.js中,我们常常需要将文件上传到云存储商,或者在服务端进行文件的转换和处理等操作。在这些操作中,我们需要将文件在不同的格式之间相互转换,比如File、Blob、Buffer和String。本文将介绍如何在Node.js中进行这些数据格式之间的相互转换,并将其上传到AWS S3云存储中。

File和Blob

在Node.js中,我们通常使用formidable、multer等第三方库来处理文件上传。这些库会将上传的文件转为File对象,我们可以通过fs模块的createReadStream()方法将其转为Readable流对象,然后再通过Blob对象的构造函数将其转为Blob对象。

File转Blob

Blob转File

在Node.js中,Blob对象没有提供直接转File对象的方法,但我们可以通过新建一个File对象来实现。我们可以使用fs模块的writeFile()方法将Blob对象中的数据写入到磁盘文件中,然后再通过fs模块的createReadStream()方法将其转为Readable流对象,最后再通过File对象的构造函数将其转为File对象。

Blob和Buffer

在Node.js中,我们使用Buffer对象来处理二进制数据。我们可以使用Blob对象的arrayBuffer()方法将其转为ArrayBuffer类型的数据,然后再将其转为Buffer类型的数据;也可以使用Buffer对象的toJSON()方法将其转为JSON格式的数据,然后再将其转为Buffer类型的数据。

Blob转Buffer

Buffer转Blob

String和Buffer

在Node.js中,我们可以使用Buffer对象来处理文本数据和二进制数据的转换。我们可以通过Buffer对象的from()方法将String类型的数据转为Buffer类型的数据,也可以通过Buffer对象的toString()方法将Buffer类型的数据转为String类型的数据。

String转Buffer

Buffer转String

上传到AWS S3

在Node.js中,我们可以使用aws-sdk库来上传文件到AWS S3云存储中。我们需要先创建一个S3实例,然后使用S3.upload()方法来上传文件。

完整示例

下面是一个完整的示例,演示如何将一个File对象上传到AWS S3云存储中。

总结

在Node.js中,我们可以使用File、Blob、Buffer和String等数据类型来处理文件和数据的转换。通过aws-sdk库,我们可以将文件上传到AWS S3云存储中。这些技术可以帮助我们更好地处理文件和数据,提高Node.js应用程序的效率和性能。

延伸

前端构造文件对象上传至服务器或者云存储

今天做了个需求,大概意思是需要从远程获取一个json文件,文件内容是数组或者对象,前端修改后需要再上传到云存储中,这个时候本来想的做法是转成base64直接通过云存储提供的SDK上传,但是因为国内一些云存储的跨域设置和限制,导致一直有跨域错误,迫不得已,只能前端把对象构造成文件然后再通过服务器直传,大概做法是:

真的是万般艰难,又重新理解了下buffer、blob、file之间的关系😂😂

相关文章

解锁DeepSeek-R1满血性能-AI 代码助手接入攻略

2025-02-18 15:47:01AI, 技术2018分钟阅读

使用 webworker 计算文件 MD5 和获取图片元数据

2024-12-25 15:35:18技术3284分钟阅读

How To Fix - CORS Error while uploading files on Cloudflare R2 using presigned URLs.

2024-06-05 16:34:55技术1,6691分钟阅读