81 lines
1.9 KiB
TypeScript
81 lines
1.9 KiB
TypeScript
/**
|
||
* Cloudflare文件分享服务
|
||
* 用于生成临时文件分享链接,有效期10分钟
|
||
*/
|
||
export declare class CloudflareShareService {
|
||
private logger;
|
||
private activeShares;
|
||
private cleanupInterval;
|
||
constructor();
|
||
/**
|
||
* 为文件创建临时分享链接
|
||
* @param filePath 文件路径
|
||
* @param filename 文件名
|
||
* @param durationMinutes 有效期(分钟),默认10分钟
|
||
* @returns 分享链接信息
|
||
*/
|
||
createShareLink(filePath: string, filename: string, durationMinutes?: number): Promise<ShareResult>;
|
||
/**
|
||
* 停止分享会话
|
||
*/
|
||
stopShare(sessionId: string): Promise<boolean>;
|
||
/**
|
||
* 获取活动分享会话列表
|
||
*/
|
||
getActiveShares(): ShareInfo[];
|
||
/**
|
||
* 清理过期的分享会话
|
||
*/
|
||
private cleanupExpiredShares;
|
||
/**
|
||
* 查找cloudflared可执行文件
|
||
*/
|
||
private findCloudflared;
|
||
/**
|
||
* 查找可用端口
|
||
*/
|
||
private findAvailablePort;
|
||
/**
|
||
* 创建文件服务器
|
||
*/
|
||
private createFileServer;
|
||
/**
|
||
* 启动cloudflared隧道
|
||
*/
|
||
private startCloudflaredTunnel;
|
||
/**
|
||
* 从cloudflared输出中提取隧道URL
|
||
*/
|
||
private extractTunnelUrl;
|
||
/**
|
||
* 生成会话ID
|
||
*/
|
||
private generateSessionId;
|
||
/**
|
||
* 格式化文件大小
|
||
*/
|
||
private formatFileSize;
|
||
/**
|
||
* 销毁服务
|
||
*/
|
||
destroy(): void;
|
||
}
|
||
interface ShareResult {
|
||
success: boolean;
|
||
sessionId?: string;
|
||
shareUrl?: string;
|
||
filename?: string;
|
||
expiresAt?: string;
|
||
durationMinutes?: number;
|
||
error?: string;
|
||
}
|
||
interface ShareInfo {
|
||
sessionId: string;
|
||
filename: string;
|
||
shareUrl: string;
|
||
createdAt: string;
|
||
expiresAt: string;
|
||
isExpired: boolean;
|
||
}
|
||
export default CloudflareShareService;
|
||
//# sourceMappingURL=CloudflareShareService.d.ts.map
|