# 自定义上传和下载

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com/zh-cn/help/idea/llms.txt).

> **TL;DR**
> `文件 | 设置 | 构建、执行、部署 | 部署`  适用于 Windows 和 Linux
>
>
>
> `%instance% | 设置 | 构建、执行、部署 | 部署`  适用于 macOS

配置连接和文件夹映射后，可以使用附加选项自定义上传和下载行为。 大多数选项适用于所有服务器访问配置类型。 FTP、FTPS 和 SFTP 配置还提供特定于协议的连接选项。

Procedure: 启用 FTP/SFTP/WebDAV Connectivity 插件

此功能依赖于 [FTP/SFTP/WebDAV Connectivity](https://plugins.jetbrains.com/plugin/13125-ftp-sftp-webdav-connectivity)插件，该插件默认在 IntelliJ IDEA 中捆绑并启用。 如果相关功能不可用，请确保您没有禁用插件。

> **Note:**
> 在未订阅 Ultimate 版的情况下，IntelliJ IDEA 中无法使用 FTP/SFTP/WebDAV 连接插件。

1. 按 `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) 打开设置，然后选择  `插件` 。

2. 找到  FTP/SFTP/WebDAV Connectivity  插件并点击   启用  。

Procedure: 设置常见的上传和下载选项

1. 按 `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) 打开设置，然后选择  `构建、执行、部署 | 部署 | 选项` 。

或者，前往主菜单中的  `工具 | 部署 | 选项…` 。

2. 指定附加设置：

* 在 按名称排除项目 字段中，指定定义这些文件和文件夹名称的模式，以在上传和下载期间跳过特定文件或整个文件夹。 使用分号 `;` 作为分隔符，星号 `*` 用于匹配零个或多个字符，问号 `?` 用于匹配单个字符。 例如，如果您有一个文件夹 `stylesheets` ，其中包含三个文件 `style.css` 、 `style1.css` 和 `style2.scss` ，则 `style*` 会排除整个文件夹， `style?.css` 会排除 `style1.css` ，而 `style?.*` 会排除 `style1.css` 和 `style2.scss` 。 详细了解请参阅 [Regular-Expressions.info](https://www.regular-expressions.info/quickstart.html)。 排除会递归地应用。 这意味着，如果匹配的文件夹有子文件夹，这些子文件夹的内容也不会被部署。 有关更多信息，请参见 [排除文件和文件夹的上传和下载](excluding-files-and-folders-from-deployment.html)。

* 配置 [自动上传](uploading-and-downloading-files.html#autoupload_definitions)，并在 [设置 | 构建、执行、部署 | 部署 | 选项](settings-deployment-options.html) 中选择如何处理覆盖。

Procedure: 指定额外的协议特定自定义选项

1. 按 `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) 打开设置，然后选择  `构建、执行、部署 | 部署` 。

或者，前往主菜单中的  `工具 | 部署 | 配置` 。

2. 选择一个已配置的服务器，并在 [高级](deployment-connection-tab.html#advanced-settings-area)组中展开   连接  选项卡，以指定依赖于协议的其他上传设置：

SFTP:

* 在 连接数 字段中，指定同时支持的最大连接数。

* 在 每次发送保持活动消息 字段中，指定您希望 IntelliJ IDEA 向服务器发送命令以重置超时并因此保持连接的频率。

* 在 客户端与服务器通信的编码 字段中，指定与您的服务器使用的编码相匹配的编码。 如果您不确定它是否支持 UTF-8 编码，请接受默认值。

FTP:

* 要将客户端设置为 [被动模式](https://slacksite.com/other/ftp.html#passive)，请选择 被动模式 复选框。 在此模式下，您机器上的客户端连接到服务器以通知处于被动模式，接收要监听的端口号，并通过接收到的端口号建立数据连接。 当计算机位于防火墙之后时，此模式很有用。

* 若要显示隐藏文件和目录（名称以 DOTS `。` 开头）在 [服务器浏览器工具窗口](remote-host-tool-window.html) 中，请选择 显示并处理隐藏文件 。

* 在 使用 LIST 命令 区域中选择 兼容旧版本的子项列表方式 ，以确保与您的 FTP 服务器 [子文件命名的兼容性](https://issues.apache.org/jira/browse/VFS-310)。 如果远程 FTP 服务器报告以下错误，此选项会有所帮助： ```SHELL Invalid descendant file name <file name> ``` 选择此选项可能会减慢与服务器的同步速度。

* 在 使用 LIST 命令 区域中选择 而不是使用 MLSD ，以使用标准 `LIST` 命令列出，而不是 `MLSD` 命令。 这可以让您避免问题，例如，如果 FTP 服务器支持 `MLSD` 并返回 `cdir` ，则在上传时因 无效的子文件名 异常而失败。

* 在 连接数 字段中，指定同时支持的最大连接数。

* 在 每次发送保持活动消息 字段中，指定您希望 IntelliJ IDEA 向服务器发送命令以重置超时并因此保持连接的频率。

* 从 保持活动命令 列表中选择要发送到服务器的命令，以重置超时并因此保持连接。

FTPS:

* 传输层安全性协议 (TLS) ：传输层安全性 (TLS) 的方法。 请选择 显式 使用与普通（不安全）模式相同的端口，或 隐式 使用专用端口。

* 数据通道保护级别 ：选择 清除 用于非安全连接，选择 私有 用于安全连接。

* 重用 SSL 会话 ：选择重用在 SSL 连接期间建立的安全协议，包括钥匙和算法协议信息。

* 禁用 TLS 1.3 ：选择以禁用 TLS 1.3 功能，并让 IntelliJ IDEA 回退到通过 TLS 1.2 进行连接。 如果在与服务器建立连接或上传某些文件时遇到问题，请使用此选项。 > **Note:** > IntelliJ IDEA 支持通过 TLS 1.2 及更高版本连接到服务器。 TLS 1.0 和 TLS 1.1 已不再受支持，因为这些协议 [已被弃用](https://datatracker.ietf.org/doc/rfc8996/)且被认为不安全。

* 要将客户端设置为 [被动模式](https://slacksite.com/other/ftp.html#passive)，请选择 被动模式 复选框。 在此模式下，您机器上的客户端连接到服务器以通知处于被动模式，接收要监听的端口号，并通过接收到的端口号建立数据连接。 当计算机位于防火墙之后时，此模式很有用。

* 若要显示隐藏文件和目录（名称以 DOTS `。` 开头）在 [服务器浏览器工具窗口](remote-host-tool-window.html) 中，请选择 显示并处理隐藏文件 。

* 在 使用 LIST 命令 区域中选择 兼容旧版本的子项列表方式 ，以确保与您的 FTP 服务器 [子文件命名的兼容性](https://issues.apache.org/jira/browse/VFS-310)。 如果远程 FTP 服务器报告以下错误，此选项会有所帮助： ```SHELL Invalid descendant file name <file name> ``` 选择此选项可能会减慢与服务器的同步速度。

* 在 使用 LIST 命令 区域中选择 而不是使用 MLSD ，以使用标准 `LIST` 命令列出，而不是 `MLSD` 命令。 这可以让您避免问题，例如，如果 FTP 服务器支持 `MLSD` 并返回 `cdir` ，则在上传时因 无效的子文件名 异常而失败。

## See also

