> 技术文档 > NodeJs接入腾讯云存储COS

NodeJs接入腾讯云存储COS

NodeJS接入
要在 Node.js 中接入腾讯云 COS(Cloud Object Storage),可以使用腾讯云 COS 的 Node.js SDK。以下是基本的接入步骤:

安装 COS SDK:首先,在您的 Node.js 项目中安装腾讯云 COS SDK。您可以使用 npm 或 yarn 进行安装:

npm install cos-nodejs-sdk-v5

配置 COS 实例:在您的代码中,导入 COS SDK 并配置 COS 实例。您需要提供腾讯云的 SecretId、SecretKey、Bucket 名称等信息。以下是一个简单的示例:

const COS = require(\'cos-nodejs-sdk-v5\');const cos = new COS({  SecretId: \'yourSecretId\', SecretKey: \'yourSecretKey\',});

使用 COS 服务

const COS = require(\'cos-nodejs-sdk-v5\');const cos = new COS({ SecretId: \'yourSecretId\', SecretKey: \'yourSecretKey\',});function getFileType(mimetype) { if (!mimetype) return \'unknown\'; if (mimetype.startsWith(\'image/\')) return \'image\'; if (mimetype.startsWith(\'video/\')) return \'video\'; if (mimetype.startsWith(\'audio/\')) return \'audio\'; return \'file\';}exports.uploadToCOS = (file, filename) => { return new Promise((resolve, reject) => { // 通过转码得到文件的中文名称 const originalFilename = Buffer.from(filename, \'latin1\').toString(\'utf8\'); const key = `uploads/${Date.now()}_${originalFilename}`; const type = getFileType(file.mimetype); cos.putObject( { Bucket: \'桶名称\', Region: \'地址\', Key: key, Body: file.buffer, ContentType: file.mimetype, ContentDisposition: \'inline\', }, (err, data) => { if (err) return reject(err); const url = `https://${data.Location}`; resolve({ url, key, type, filename: originalFilename, // 这里仍然可以返回原始中文名供前端展示 }); } ); });};

接口路由:
 

var express = require(\'express\');var router = express.Router();const multer = require(\'multer\');const upload = multer({ storage: multer.memoryStorage() }); // 用内存存文件const { uploadToCOS } = require(\'../utils/cos\');router.post(\'/api/upload\', upload.single(\'file\'), async (req, res) => { try { const file = req.file; if (!file) return res.error(\'文件不能为空\', 400); const fileData = await uploadToCOS(file, file.originalname); res.success(fileData, \'上传成功\'); } catch (err) { console.error(err); res.error(\'上传失败\', 400); }});module.exports = router;