Appearance
node阿里云oss文件上传
安装依赖
npm install express multer @alicloud/oss
npm install express multer @alicloud/oss
基础代码实现
创建 server.js
文件:
js
const express = require('express');
const multer = require('multer');
const OSS = require('@alicloud/oss');
require('dotenv').config();
// 创建 Express 应用
const app = express();
const port = 3000;
// 配置 Multer 内存存储
const storage = multer.memoryStorage();
const upload = multer({ storage });
// 创建 OSS 客户端
const client = new OSS({
region: 'oss-cn-hangzhou',
accessKeyId: 'your-access-key-id',
accessKeySecret: 'your-access-key-id',
bucket: 'your-bucket-name'
});
// 文件上传路由
app.post('/upload', upload.single('file'), async (req, res) => {
try {
if (!req.file) {
return res.status(400).json({ error: 'No file uploaded' });
}
// 生成唯一文件名
const timestamp = Date.now();
const extension = req.file.originalname.split('.').pop();
const objectName = `uploads/${timestamp}.${extension}`;
// 上传到 OSS
const result = await client.put(
objectName,
req.file.buffer,
{ headers: { 'Content-Type': req.file.mimetype } }
);
res.json({
message: 'File uploaded successfully',
url: result.url
});
} catch (error) {
console.error('Upload error:', error);
res.status(500).json({ error: 'File upload failed' });
}
});
// 启动服务器
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
const express = require('express');
const multer = require('multer');
const OSS = require('@alicloud/oss');
require('dotenv').config();
// 创建 Express 应用
const app = express();
const port = 3000;
// 配置 Multer 内存存储
const storage = multer.memoryStorage();
const upload = multer({ storage });
// 创建 OSS 客户端
const client = new OSS({
region: 'oss-cn-hangzhou',
accessKeyId: 'your-access-key-id',
accessKeySecret: 'your-access-key-id',
bucket: 'your-bucket-name'
});
// 文件上传路由
app.post('/upload', upload.single('file'), async (req, res) => {
try {
if (!req.file) {
return res.status(400).json({ error: 'No file uploaded' });
}
// 生成唯一文件名
const timestamp = Date.now();
const extension = req.file.originalname.split('.').pop();
const objectName = `uploads/${timestamp}.${extension}`;
// 上传到 OSS
const result = await client.put(
objectName,
req.file.buffer,
{ headers: { 'Content-Type': req.file.mimetype } }
);
res.json({
message: 'File uploaded successfully',
url: result.url
});
} catch (error) {
console.error('Upload error:', error);
res.status(500).json({ error: 'File upload failed' });
}
});
// 启动服务器
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});