对象存储(COS)
本文介绍了如何使用 midway 接入腾讯云 COS。
安装依赖#
$ npm i @midwayjs/cos --save
引入组件#
首先,引入 组件,在 configuration.ts 中导入:
import { Configuration } from '@midwayjs/decorator';import * as cos from '@midwayjs/cos';import { join } from 'path';
@Configuration({ imports: [ cos, // 导入 cos 组件 ], importConfigs: [join(__dirname, 'config')],})export class ContainerLifeCycle {}配置#
比如:
单客户端配置
export const cos = { client: { secretId: '***********', secretKey: '***********', },};多个客户端配置,需要配置多个
export const cos = { clients: { instance1: { secretId: '***********', secretKey: '***********', }, instance2: { secretId: '***********', secretKey: '***********', }, },};更多参数可以查看 cos-nodejs-sdk-v5 文档。
使用 COS 服务#
我们可以在任意的代码中注入使用。
import { Provide, Controller, Inject, Get } from '@midwayjs/decorator';import { CosService } from '@midwayjs/cos';
@Provide()export class UserService {
@Inject() cosService: COSService;
async invoke() { await this.cosService.sliceUploadFile({ Bucket: 'test-1250000000', Region: 'ap-guangzhou', Key: '1.zip', FilePath: './1.zip' }, }}
可以使用 COSServiceFactory 获取不同的实例。
import { COSServiceFactory } from '@midwayjs/cos';import { join } from 'path';
@Provide()export class UserService { @Inject() cosServiceFactory: COSServiceFactory;
async save() { const redis1 = await this.cosServiceFactory.get('instance1'); const redis2 = await this.cosServiceFactory.get('instance3');
//... }}