perf(server): Cache user keypair

This commit is contained in:
syuilo 2021-03-22 15:14:54 +09:00
parent 202e943d55
commit 7c3086e9d9
5 changed files with 21 additions and 15 deletions

View file

@ -5,11 +5,11 @@ import * as crypto from 'crypto';
import config from '../../config';
import { ILocalUser } from '../../models/entities/user';
import { UserKeypairs } from '../../models';
import { getAgentByUrl } from '../../misc/fetch';
import { URL } from 'url';
import got from 'got';
import * as Got from 'got';
import { getUserKeypair } from '../../misc/keypair-store';
export default async (user: ILocalUser, url: string, object: any) => {
const timeout = 10 * 1000;
@ -22,9 +22,7 @@ export default async (user: ILocalUser, url: string, object: any) => {
sha256.update(data);
const hash = sha256.digest('base64');
const keypair = await UserKeypairs.findOneOrFail({
userId: user.id
});
const keypair = await getUserKeypair(user.id);
await new Promise((resolve, reject) => {
const req = https.request({
@ -74,9 +72,7 @@ export default async (user: ILocalUser, url: string, object: any) => {
export async function signedGet(url: string, user: ILocalUser) {
const timeout = 10 * 1000;
const keypair = await UserKeypairs.findOneOrFail({
userId: user.id
});
const keypair = await getUserKeypair(user.id);
const req = got.get<any>(url, {
headers: {