package com.ruoyi.task.api.spi;
/**
* FTP 下载能力 —— ruoyi-task 的对外 SPI,由 smartor 侧实现。
*
*
用途
* 子任务统计里有一段"把当天的录音目录从 FTP 拉到本地"的动作
* (原 {@code ServiceSubtaskServiceImpl} L2859:
* {@code ftpService.downloadFolder("/" + LocalDate.now(), profile + "/upload/vadio/voice/" + LocalDate.now())})。
* {@code FtpService} 是 smartor 的通用工具,不属任务域,因此经本端口取用。
*
* 为什么端口在 ruoyi-task 而不在 ruoyi-common
* 本端口只被 ruoyi-task 使用、且参数全是基本类型,没有"多方共享的契约类型",
* 放在 ruoyi-task 的 {@code api.spi} 下即可,不必污染 ruoyi-common。
* 方向仍是「接口在 ruoyi-task、实现在 smartor」,编译期无环。
*
* ⚠️ 实现必须保持"纯转发"
*/
public interface TaskFtpPort {
/**
* 递归下载远端目录到本地(原 {@code FtpService#downloadFolder})。
*
* @param remoteDir 远端目录
* @param localDir 本地目录
*/
void downloadFolder(String remoteDir, String localDir);
}