2. 配置后端Express服务器与MinIO连接
创建一个名为minioClient.js
的文件或在现有配置文件中添加以下内容以设置MinIO客户端:
// minioClient.js
const Minio = require('minio');
const minioClient = new Minio.Client({
endPoint: 'your-minio-server-address',
port: 9000, // 或者你使用的端口
useSSL: false, // 如果是HTTPS连接,则为true
accessKey: 'your-access-key',
secretKey: 'your-secret-key',
});
module.exports = minioClient;
3. 创建文件上传API
在Express应用中创建一个路由处理文件上传至MinIO。
// server/controllers/minioController.js
const express = require('express');
const minioClient = require('../config/minioClient');
const router = express.Router();
router.post('/upload', async (req, res) => {
try {
const { file } = req.files; // 假设通过multer等中间件解析了文件
// 创建一个新的对象名,可以包含路径前缀
const objectName = `uploads/${file.originalname}`;
// 上传文件到MinIO
await minioClient.putObject('your-bucket-name', objectName, file.buffer, file.size, 'application/octet-stream');
res.status(200).json({ message: 'File uploaded successfully', url: `/download/${encodeURIComponent(objectName)}` });
} catch (err) {
console.error(err);
res.status(500).json({ error: 'Failed to upload file' });
}
});
module.ex