node.js 上传下载文件 minio
时间: 2025-06-27 18:17:46 浏览: 15
### Node.js 使用 MinIO 实现文件上传和下载
#### 安装依赖包
为了在Node.js中使用MinIO实现文件的上传与下载操作,需先安装minio客户端库。可以通过npm命令完成此过程。
```bash
npm install minio --save
```
#### 初始化MinIO Client实例
创建一个新的JavaScript文件用于配置连接到MinIO服务端的信息,比如endpoint、accessKey以及secretKey等参数设置。
```javascript
const Minio = require('minio')
// 创建MinIO客户端实例
const s3Client = new Minio.Client({
endPoint: 'play.min.io', // 或者自定义的对象存储地址
port: 9000,
useSSL: true,
accessKey: 'YOUR-ACCESSKEYID',
secretKey: 'YOUR-SECRETACCESSKEY'
})
```
#### 文件上传功能
下面展示了一个简单的函数用来向指定桶内上传本地文件至MinIO服务器上,并设置了元数据属性以便于管理和检索资源。
```javascript
async function uploadFile(bucketName, objectName, filePath) {
try {
await s3Client.putObject(bucketName, objectName, fs.createReadStream(filePath), (err, etag) => {
if (!err) console.log(`Upload succeeded with ETag: ${etag}`)
else throw err
})
} catch (error) {
console.error(error.message)
}
}
```
#### 文件下载功能
这里提供了一种方式可以直接将远程对象的内容流式传输回HTTP响应体中供前端浏览器访问或保存下来;这种方式特别适合处理大尺寸多媒体资料而无需占用过多内存空间。
```javascript
function downloadFile(req, res, bucketName, objectName) {
const options = {}
s3Client.getObject(bucketName, objectName, (err, dataStream) => {
if (err) return res.status(500).send(err)
dataStream.pipe(res)
}).on('error', (err) => {
console.error(err)
res.status(500).end()
})
}
```
上述代码片段实现了利用Node.js配合MinIO SDK来进行基本的对象存取操作[^1]。
阅读全文
相关推荐


















