添加 服务端GetOSSToken接口

This commit is contained in:
2024-10-05 01:30:59 +08:00
parent e826b1c9e0
commit 5b60754ecc
3 changed files with 63 additions and 0 deletions

View File

@@ -11,10 +11,12 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"devDependencies": { "devDependencies": {
"@types/ali-oss": "^6.16.11",
"@types/cors": "^2.8.17", "@types/cors": "^2.8.17",
"@types/express": "^4.17.21", "@types/express": "^4.17.21",
"@types/jsonwebtoken": "^9.0.6", "@types/jsonwebtoken": "^9.0.6",
"@types/node": "^20.12.12", "@types/node": "^20.12.12",
"ali-oss": "^6.21.0",
"jsonwebtoken": "^9.0.2", "jsonwebtoken": "^9.0.2",
"ts-node": "^10.9.2", "ts-node": "^10.9.2",
"typescript": "^5.4.5" "typescript": "^5.4.5"

View File

@@ -0,0 +1,59 @@
import { API } from "../../Plugs/API/API";
import ServerStdResponse from "../../ServerStdResponse";
import { STS } from 'ali-oss'
import Auth from "../../Plugs/Middleware/Auth";
import config from "../../config";
// 获取OSS Token
class GetOSSToken extends API {
constructor() {
super('GET', '/console/ossToken', Auth);
}
public async onRequset(data: any, res: any) {
// 进行OSS_Upload_STS_Token获取
let sts = new STS({
accessKeyId: config.oss.accessKeyId,
accessKeySecret: config.oss.accessKeySecret
});
let policy = {
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
// "oss:GetObject",
// "oss:PutObject",
// "oss:ListObject"
"oss:*"
],
"Resource": [
// `acs:oss:*:*:tone-personal/${config.oss.dir}/*`.toString()
"*"
// `acs:oss:*:tone-personal/*`.toString()
]
}
]
};
try {
let sts_res = await sts.assumeRole(config.oss.roleArn, policy, config.oss.stsExpirationSec);
let sts_token: any = {
AccessKeyId: sts_res.credentials.AccessKeyId,
AccessKeySecret: sts_res.credentials.AccessKeySecret,
SecurityToken: sts_res.credentials.SecurityToken,
OSSRegion: config.oss.region,
Bucket: config.oss.bucket,
ExpirationSec: config.oss.stsExpirationSec,
}
this.logger.info('STS AssumeRol 成功');
res.json({ ...ServerStdResponse.OK, data: sts_token });
return;
} catch (error: any) {
this.logger.error('STS AssumeRole 获取时发生错误', error.message);
res.json(ServerStdResponse.SERVER_ERROR);
return;
}
}
}
export default GetOSSToken;

View File

@@ -23,6 +23,7 @@ import SaveResource from '../APIs/Console/SaveResource'
import DelResource from '../APIs/Console/DelResource' import DelResource from '../APIs/Console/DelResource'
import SaveBlog from '../APIs/Console/SaveBlog' import SaveBlog from '../APIs/Console/SaveBlog'
import DelBlog from '../APIs/Console/DelBlog' import DelBlog from '../APIs/Console/DelBlog'
import GetOSSToken from "../APIs/Console/GetOSSToken";
class Server { class Server {
private logger = new Logger('Server'); private logger = new Logger('Server');
@@ -52,6 +53,7 @@ class Server {
this.apiLoader.add(GetBlogs) this.apiLoader.add(GetBlogs)
this.apiLoader.add(SaveBlog); this.apiLoader.add(SaveBlog);
this.apiLoader.add(DelBlog); this.apiLoader.add(DelBlog);
this.apiLoader.add(GetOSSToken);
this.apiLoader.start(config.apiPort); this.apiLoader.start(config.apiPort);
} }