当今,除了存储大量数据的数据库外,云存储服务已经成为了一个普遍存在的选择。腾讯云对象存储(COS)是一个功能强大、高扩展性、低成本、易使用的云端存储服务。它集成了丰富的 API 和工具,包括 node.js SDK,使您可以轻松地使用此服务。

安装依赖

Shell
yarn add cos-nodejs-sdk-v5

导入包

NODE
const COS = require('cos-nodejs-sdk-v5');

初始化 COS 对象

NODE
const cos = new COS({
  SecretId: 'xxxxx',
  SecretKey: 'xxxx',
});

将回调函数包装成Promise

导入包

NODE
const { promisify } = require('util');

使用promisify

NODE
const putObjectAsync = promisify(cos.putObject.bind(cos));

使用COS对象

NODE
upload.post('/articleImage', async ctx => {
  try {
    const { file } = ctx.request.files;
    const key = `articleImages/${file.originalFilename}`;

    const data = await putObjectAsync({
      Bucket: 'xxx',
      Region: 'xxx',
      Key: key,
      Body: fs.createReadStream(file.filepath),
      ContentType: 'image/jpeg',
    });

    ctx.body = {
      code: 200,
      data: {
        url: `https://${data.Location}`,
        fileName: file.originalFilename
      },
      message: '文件上传成功'
    };
  } catch (error) {
    ctx.body = {
      code: -1,
      data: null,
      message: error
    };
  }
});

结论

Node.js SDK 是一个可靠的、强大的工具,可帮助您轻松地将文件上传到腾讯云 COS 上。通过对腾讯云 COS 的配置,以及对 COS API 的调用,您可以立即开始使用这个优秀的云端存储服务。

阅读进度 0%