依据ImageKit的官方文档,我们需要在后台SDK传入API公钥,私钥和URL端点,前面已经配置好了。
但是,想要将图片上传到imagekit的媒体库,还需要后端服务器用私有密钥对请求进行验证
怎么验证?
使用imagekit-nestjs封装好的方法
我这里新建了user模块
nest g resource user
//user.controller.ts
import { Controller, Get } from "@nestjs/common";
import { UserService } from "./user.service";
@Controller("user")
export class UserController {
constructor(private readonly userService: UserService) {}
@Get("keys")
async getImageKitKeys() {
const res = await this.userService.getAuthParameters();
return res;
}
}
//user.service.ts
import { Injectable } from "@nestjs/common";
import { ImageKitService } from "imagekit-nestjs";
@Injectable()
export class UserService {
constructor(private readonly imageKitService: ImageKitService) {} // 通过构造函数注入 ConfigService
async getAuthParameters() {
// 获取 ImageKit 的认证参数
const keys = await this.imageKitService.getAuthenticationParameters();
return keys; // 返回密钥
}
}
开启跨域
//main.ts
import { NestFactory } from "@nestjs/core";
import { AppModule } from "./app.module";
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.enableCors();
await app.listen(3005);
}
bootstrap();
启动服务
nest start
根据官方文档所说,如果成功的话会返回三个参数
用postman试一下
完成!
寥寥数笔,花了我三个多小时🫤
参考
CodeVisionEvgen/imagekit-nestjs: Imagekit nestjs module (github.com)