首页 > 编程语言 >如何在Node.js中使用Express直接上传客户端文件到MinIO?

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

时间:2024-04-01 17:13:01浏览次数:15  
标签:Node const MinIO app Express file 上传 客户端

如何在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工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系[email protected]进行反馈,火山引擎收到您的反馈后将及时答复和处理。

标签:Node,const,MinIO,app,Express,file,上传,客户端
From: https://www.cnblogs.com/sexintercourse/p/18108895

相关文章

  • MinIO是干嘛的?
    MinIO是干嘛的?Python小甲鱼2023-11-232,007阅读7分钟 一、MinIO是干嘛的?网上搜索“minio是干嘛的”这个问题搜索的太多了,我们感觉是我们的工作没有做好才给大家造成了这么大的信息差。在这里,我们有义务将信息差补齐。先正面回答问题:MinIO是一种SDS(软件定义存储)的分......
  • nodejs爬图片(二)
    前言    网上一张一张下载是不是很麻烦,直接批量下载,解决你的问题。高清不是梦!        具体步骤不说了,直接上代码constcheerio=require("cheerio");constaxios=require("axios");constfs=require("fs");constpath=require("path");letht......
  • nodejs做中间层_Nodejs 之 RPC 协议简介
    背景随着Nodejs的兴起,越来越多的Web服务中间层被搭建起来。如Node服务端渲染,BFF(BackendForFrontend))层,而RPC是远端过程调用,经常用于BFF层。最近,我打算写一个中间层,用Nodejs调用Go服务,除了可以简单用http调用之外,发现还有基于RPC的调用就研究了一下。RPC简......
  • Node.js中什么是RPC通信?和Ajax有啥区别?
    什么是RPC通信先导语对于后端人员来说,RPC通信是一个很熟悉的也很容易理解的东西,但是对于像我这样的前端人员来讲,对RPC就比较陌生,理解起来也相对困难一点了。对于这个问题,我们今天来尝试下,站在前端的角度来理解下RPC通信。【推荐学习:《nodejs教程》】RPC和AjaxRPC和Ajax是很相......
  • Nginx 代理访问minio存储桶图片
    设置存储桶Anonymous配置nginx并reload location/images/{ proxy_passhttp://127.0.0.1:9000/; } 测试https://paylove.online/images/存储桶/xxx.pngIAM参考https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/reference_policies_elements.html......
  • import resolve from '@rollup/plugin-node-resolve' 这个包的作用是什么
    importresolvefrom'@rollup/plugin-node-resolve'这行代码引入了Rollup.js的一个插件——@rollup/plugin-node-resolve。这个插件在使用Rollup进行模块打包时起到至关重要的作用,具体作用如下:**1.Node.js模块解析:@rollup/plugin-node-resolve插件的主要职责是帮助Ro......
  • 【Node.js】大文件上传
    概述大文件上传通常采用分片上传。如果因为某些原因上传突然中断,解决问题之后可以接着之前的分片上传,而不需要从头开始上传,也就是断点续传。此外还可以利用多个网络连接并行上传多个分片,提高上传速度。注:前端不能使用live-server去启动,live-server启动会在上传文件时......
  • NodeJS 高校学业预警系统 毕业设计-10551
    摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,教育行业当然也不能排除在外。高校学业预警系统是以实际运用为开发背景,运用软件工程开发方法,采用Node.JS技术构建的一个管理系统。整个开发过程首先对软件系......
  • Minio 笔记
    一、安装minio#安装方式or直接下二进制执行文件chomod+xminio运行sudowgethttps://dl.min.io/server/minio/release/linux-amd64/archive/minio-20240326221045.0.0-1.x86_64.rpm-Ominio.rpmsudodnfinstallminio.rpm#mkdir/usr/miniodata文件夹#启动一#......
  • 【NodeMcu-ESP8266】引脚使用参考指南——推荐收藏
    目录概述     一、ESP826612—E/F模组引脚图二、ESP826612-E/FNodeMCU引脚图三、ESP8266coreforArduino源码关于NodeMCU引脚设置的定义四、ESP8266-NodeMCU引脚特性及使用建议五、需要特别提醒和强调的几个具体问题参考文档概述         ......