diff --git a/packages/core/acme-client/src/auto.js b/packages/core/acme-client/src/auto.js index 86c82192..30c454a3 100644 --- a/packages/core/acme-client/src/auto.js +++ b/packages/core/acme-client/src/auto.js @@ -117,12 +117,12 @@ export default async (client, userOpts) => { log(`[auto] [${d}] Trigger challengeCreateFn()`); try { - const { recordReq, recordRes, dnsProvider, challenge, keyAuthorization } = await opts.challengeCreateFn(authz, keyAuthorizationGetter); + const { recordReq, recordRes, dnsProvider, challenge, keyAuthorization ,httpUploader} = await opts.challengeCreateFn(authz, keyAuthorizationGetter); clearTasks.push(async () => { /* Trigger challengeRemoveFn(), suppress errors */ log(`[auto] [${d}] Trigger challengeRemoveFn()`); try { - await opts.challengeRemoveFn(authz, challenge, keyAuthorization, recordReq, recordRes, dnsProvider); + await opts.challengeRemoveFn(authz, challenge, keyAuthorization, recordReq, recordRes, dnsProvider,httpUploader); } catch (e) { log(`[auto] [${d}] challengeRemoveFn threw error: ${e.message}`); } diff --git a/packages/core/acme-client/types/index.d.ts b/packages/core/acme-client/types/index.d.ts index 4ae05a48..6fa941da 100644 --- a/packages/core/acme-client/types/index.d.ts +++ b/packages/core/acme-client/types/index.d.ts @@ -59,7 +59,7 @@ export interface ClientExternalAccountBindingOptions { export interface ClientAutoOptions { csr: CsrBuffer | CsrString; challengeCreateFn: (authz: Authorization, keyAuthorization: (challenge:rfc8555.Challenge)=>Promise) => Promise<{recordReq?:any,recordRes?:any,dnsProvider?:any,challenge: rfc8555.Challenge,keyAuthorization:string}>; - challengeRemoveFn: (authz: Authorization, challenge: rfc8555.Challenge, keyAuthorization: string,recordReq:any, recordRes:any,dnsProvider:any) => Promise; + challengeRemoveFn: (authz: Authorization, challenge: rfc8555.Challenge, keyAuthorization: string,recordReq:any, recordRes:any,dnsProvider:any,httpUploader:any) => Promise; email?: string; termsOfServiceAgreed?: boolean; skipChallengeVerification?: boolean; diff --git a/packages/plugins/plugin-cert/src/plugin/cert-plugin/acme.ts b/packages/plugins/plugin-cert/src/plugin/cert-plugin/acme.ts index 51bc347b..f479be75 100644 --- a/packages/plugins/plugin-cert/src/plugin/cert-plugin/acme.ts +++ b/packages/plugins/plugin-cert/src/plugin/cert-plugin/acme.ts @@ -35,7 +35,6 @@ export type DomainsVerifyPlan = { export type Providers = { dnsProvider?: IDnsProvider; domainsVerifyPlan?: DomainsVerifyPlan; - httpUploader?: IOssClient; }; export type CertInfo = { @@ -323,7 +322,7 @@ export class AcmeService { isTest?: boolean; privateKeyType?: string; }): Promise { - const { email, isTest, csrInfo, dnsProvider, domainsVerifyPlan, httpUploader } = options; + const { email, isTest, csrInfo, dnsProvider, domainsVerifyPlan } = options; const client: acme.Client = await this.getAcmeClient(email, isTest); let domains = options.domains; @@ -370,14 +369,13 @@ export class AcmeService { privateKey ); - if (dnsProvider == null && domainsVerifyPlan == null && httpUploader == null) { - throw new Error("dnsProvider 、 domainsVerifyPlan 、 httpUploader不能都为空"); + if (dnsProvider == null && domainsVerifyPlan == null) { + throw new Error("dnsProvider 、 domainsVerifyPlan不能都为空"); } const providers: Providers = { dnsProvider, domainsVerifyPlan, - httpUploader, }; /* 自动申请证书 */ const crt = await client.auto({ @@ -392,7 +390,7 @@ export class AcmeService { ): Promise<{ recordReq?: any; recordRes?: any; dnsProvider?: any; challenge: Challenge; keyAuthorization: string }> => { return await this.challengeCreateFn(authz, keyAuthorizationGetter, providers); }, - challengeRemoveFn: async (authz: acme.Authorization, challenge: Challenge, keyAuthorization: string, recordReq: any, recordRes: any, dnsProvider: IDnsProvider): Promise => { + challengeRemoveFn: async (authz: acme.Authorization, challenge: Challenge, keyAuthorization: string, recordReq: any, recordRes: any, dnsProvider: IDnsProvider, httpUploader: IOssClient): Promise => { return await this.challengeRemoveFn(authz, challenge, keyAuthorization, recordReq, recordRes, dnsProvider, httpUploader); }, signal: this.options.signal, diff --git a/packages/plugins/plugin-lib/src/oss/api.ts b/packages/plugins/plugin-lib/src/oss/api.ts index c843d7c9..8dd46f78 100644 --- a/packages/plugins/plugin-lib/src/oss/api.ts +++ b/packages/plugins/plugin-lib/src/oss/api.ts @@ -18,7 +18,7 @@ export type OssFileItem = { export type IOssClient = { upload: (fileName: string, fileContent: Buffer) => Promise; - remove: (fileName: string) => Promise; + remove: (fileName: string, opts?: { joinRootDir?: boolean }) => Promise; download: (fileName: string, savePath: string) => Promise;