如何在Node.js中使用Express直接上传客户端文件到MinIO?

如何在Node.js中使用Express直接上传客户端文件到MinIO?

在 Node.js 中使用 MinIO 的前提是已经安装并进行了相关设置。在此基础上,需要引入 MinIO 的 SDK,通过它实现客户端文件上传。

以下代码示例演示了如何通过 Express 直接从客户端上传文件到 MinIO:

const express = require('express');
const app = express();
const port = 3000;
const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

const Minio = require('minio');

const minioClient = new Minio.Client({
  endPoint: 'minio.example.com',
  port: 9000,
  useSSL: true,
  accessKey: 'YOUR-ACCESSKEYID',
  secretKey: 'YOUR-SECRETACCESSKEY',
});

app.post('/upload', (req, res) => {
  if (!req.files) {
    res.status(400).send('No file uploaded');
  } else {
    const file = req.files.file;
    const metaData = {
      'Content-Type': file.mimetype,
    };
    const stream = Buffer.from(file.data, 'binary');

    minioClient.putObject(
      'my-bucket',
      file.name,
      stream,
      stream.length,
      metaData,
      (err, etag) => {
        if (err) return console.log(err);
        console.log(etag);
        res.status(200).send('File uploaded');
      },
    );
  }
});

app.listen(port, () => console.log(`Example app listening on port ${port}!`));

在这个例子中,“/upload” 路由接收客户端 POST 请求,将文件上传到 MinIO 的“my-bucket”存储桶中。要使用这个示例,您需要使用 Multer 中间件在客户端获取上传的文件并将其作为“file”属性上传。

这个例子很简单,但是您可以在其中添加身份验证和其他安全性措施以防范潜在的风险。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。

posted on   漫思  阅读(235)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示