# FTP

# 导入

通过如下方式导入ftp api

import ftp from "svr-api/ftp";

# 方法

/**
 * ftp服务器相关API
 */

/**
 * 创建一个ftp客户端连接
 * 
 * 通过此方法获取的连接务必在使用完毕后调用{@link FtpClient#close}进行关闭
 */
export function connectFTP(args: {
	/**
	 * ftp服务器地址
	 */
	host: string;
	/**
	 * ftp服务器端口
	 */
	port: number;
	/**
	 * ftp登录用户名
	 */
	username: string;
	/**
	 * ftp登录密码
	 */
	password: string
}): FtpClient;

# 对象

/**
 * 此文件定义一些ftp客户端的相关的数据类型。
 * 
 */

/**
 * 一个ftp链接对象,创建一次可多次复用,用于连续多次的和同一个服务器进行文件的交互。
 * 
 */
declare interface FtpClient {

	/**
	 * 服务器IP地址
	 */
	host: string;

	/**
	 * 端口号,默认21
	 */
	port: number;

	/**
	 * 用户名
	 */
	username: string;

	/**
	 * 测试能否连接至FTP服务器
	 * 
 	 * @param throwIfFailed 连接失败时是否抛出异常,默认为`false`。
	 */
	testConnection(throwIfFailed?: boolean): boolean;

	/**
	 * 获取当前工作目录
	 */
	getWorkDir(): string;

	/**
	 * 跳转到指定目录
	 * 
	 * @param path 
	 * @return 跳转成功返回`true`,否则返回`false`
	 * @throws 若无法连接到目录,则抛出异常
	 */
	cwd(path: string): boolean;

	/**
	 * 创建指定目录
	 * 
	 * 调用时请确保父目录存在,否则将会创建失败。
	 * 
	 * @param path 绝对路径或相对路径
	 * * 绝对路径 = 当前目录 + 相对路径
	 * * 绝对路径:以`/`开头,如:`/A1/B1`
	 * * 相对路径:相对当前工作目录的路径,如:`B1/test.txt`
	 * @returns 创建成功返回`true`,否则返回`false`
	 */
	mkdir(path: string): boolean;

	/**
	 * 移除指定目录
	 * 
	 * @param path 
	 * @return 移除成功返回`true`,否则返回`false`
	 */
	rmdir(path: string): boolean;

	/**
	 * 重命名文件
	 * 
	 * 可以用于修改文件的路径、名称和格式
	 * 
	 * @param oldPath 
	 * @param newPath 
	 */
	rename(oldPath: string, newPath: string): boolean;

	/**
	 * 列出目录下的所有文件
	 * 
	 * @param path 
	 */
	list(path: string): Array<{ filename: string; size: number; type: string }>;

	/**
	 * 将本地文件上传至FTP服务器
	 * 
	 * @param remotePath 服务器文件目录
	 * @param localFilePath 
	 */
	put(remotePath: string, localFilePath: string): boolean;

	/**
	 * 下载FTP文件
	 * 
	 * @return 文件不存在则返回`null`
	 */
	get(path: string): import("svr-api/fs").File;

	/**
	 * 删除ftp服务器上指定的文件
	 * 
	 * @param path 
	 * @return 删除成功返回`true`,否则返回`false`
	 */
	del(path: string): boolean;

	/**
	 * 获取指定文件大小
	 * 
	 * @param path 
	 */
	size(path: string): number;

 	/**
	 * 关闭当前ftp连接
	 */
	close(): void;
}


是否有帮助?
0条评论
评论