liusheng
4 天以前 0bbbd746e8c39d91ad7b47a4e36e29ab972dc98c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package com.ruoyi.task.api.spi;
 
/**
 * FTP 下载能力 —— <b>ruoyi-task 的对外 SPI,由 smartor 侧实现</b>。
 *
 * <h3>用途</h3>
 * 子任务统计里有一段"把当天的录音目录从 FTP 拉到本地"的动作
 * (原 {@code ServiceSubtaskServiceImpl} L2859:
 * {@code ftpService.downloadFolder("/" + LocalDate.now(), profile + "/upload/vadio/voice/" + LocalDate.now())})。
 * {@code FtpService} 是 smartor 的通用工具,不属任务域,因此经本端口取用。
 *
 * <h3>为什么端口在 ruoyi-task 而不在 ruoyi-common</h3>
 * 本端口只被 ruoyi-task 使用、且参数全是基本类型,没有"多方共享的契约类型",
 * 放在 ruoyi-task 的 {@code api.spi} 下即可,不必污染 ruoyi-common。
 * 方向仍是「接口在 ruoyi-task、实现在 smartor」,编译期无环。
 *
 * <h3>⚠️ 实现必须保持"纯转发"</h3>
 */
public interface TaskFtpPort {
 
    /**
     * 递归下载远端目录到本地(原 {@code FtpService#downloadFolder})。
     *
     * @param remoteDir 远端目录
     * @param localDir  本地目录
     */
    void downloadFolder(String remoteDir, String localDir);
}