> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kasoftware.com/llms.txt
> Use this file to discover all available pages before exploring further.

# FTP 端口

> FTP 端口的配置和使用指南，用於在遠端 FTP 伺服器之間傳輸檔案。

export const CommonCacheCleanup = () => <>
    <p>知行之橋會自動清理資源快取。此過程在每次接收週期的後臺執行，刪除遠端伺服器上已不存在的檔案對應的過期快取項目。這使得快取大小始終保持在可管理範圍內，無需任何手動操作。</p>
    <p>預設情況下，檔案保留 30 天，但您可以在<strong>高階</strong>索引標籤的<strong>其他設定</strong>欄位中使用 <code>ResourceCacheRetentionDays</code> 設定來調整保留時間以適應您的環境。例如，<code>ResourceCacheRetentionDays=15</code> 表示檔案保留 15 天后將被刪除。</p>
  </>;

export const CommonServerCommands = ({extraCommands}) => <>
    <p>這些選項允許您在端口執行期間的不同時間在目標伺服器上執行自定義命令。</p>

    <Note>雖然下面描述的命令是普遍接受的，但在嘗試使用命令之前，請務必與目標伺服器管理員核實，以確保伺服器可以接受該命令。</Note>

    <table>
      <thead>
        <tr><th>設定</th><th>描述</th></tr>
      </thead>
      <tbody>
        <tr><td><strong>After Connect</strong></td><td>連線後直接執行此命令。</td></tr>
        <tr><td><strong>After Get</strong></td><td>下載每個檔案後執行此命令。</td></tr>
        <tr><td><strong>After Put</strong></td><td>上傳每個檔案後執行此命令。</td></tr>
        <tr><td><strong>Before Get</strong></td><td>在下載每個檔案之前執行此命令。</td></tr>
        <tr><td><strong>Before Put</strong></td><td>在上傳每個檔案之前執行此命令。</td></tr>
      </tbody>
    </table>

    <p>以下是當將以下命令包含在上述欄位中時可以提交給目標伺服器的命令：</p>

    <p style={{
  paddingLeft: '1.5rem',
  marginTop: '0.25rem',
  marginBottom: '0.25rem'
}}>• <code>onerror</code>：傳遞 <code>fail</code> 參數以指示端口將來自自定義指令碼的錯誤視為整個交易的錯誤。如果沒有 <code>fail</code>，端口會記錄任何例外並繼續處理。</p>
    <p style={{
  paddingLeft: '1.5rem',
  marginTop: '0.25rem',
  marginBottom: '0.25rem'
}}>• <code>cd</code>：改變目錄。</p>
    <p style={{
  paddingLeft: '1.5rem',
  marginTop: '0.25rem',
  marginBottom: '0.25rem'
}}>• <code>mkdir</code>：建立目錄。</p>
    <p style={{
  paddingLeft: '1.5rem',
  marginTop: '0.25rem',
  marginBottom: '0.25rem'
}}>• <code>rn</code> 或 <code>move</code>：重新命名或移動檔案。</p>
    <p style={{
  paddingLeft: '1.5rem',
  marginTop: '0.25rem',
  marginBottom: '0.25rem'
}}>• <code>del</code> 或 <code>rm</code>：刪除檔案。</p>
    <p style={{
  paddingLeft: '1.5rem',
  marginTop: '0.25rem',
  marginBottom: '0.25rem'
}}>• <code>rmdir</code>：刪除目錄。</p>
    {extraCommands}

    <p>知行之橋透過這些命令支援以下宏。它們都使用以下語法：<code>%Macro%</code>。某些宏，例如 <code>%Date%</code> 和 <code>%SourceFilename%</code>，不需要參數，但其他宏則需要。帶參數的宏使用以下語法：<code>%Macro:argument%</code>。</p>

    <table>
      <thead>
        <tr><th>宏</th><th>描述</th></tr>
      </thead>
      <tbody>
        <tr><td>MsgHeader:<em>headername</em></td><td>計算訊息的訊息頭值（例如：%MsgHeader:headername%）。</td></tr>
        <tr><td>SourceFilename</td><td>計算當前正在處理的檔案的檔名（包括副檔名）。</td></tr>
        <tr><td>SourceFilenameNoExt</td><td>計算當前正在處理的檔案的檔名（不帶副檔名）。</td></tr>
        <tr><td>Date</td><td>以 yyyy-MM-dd 格式計算檔案的上次修改日期（例如 2024-02-13）。</td></tr>
        <tr><td>DateTime</td><td>以 yyyy-MM-dd'T'HH:mm:ss 格式計算檔案上次修改的日期時間（例如 2024-02-13T08:14:22）。</td></tr>
        <tr><td>Time</td><td>以 HH:mm:ss 格式計算檔案的上次修改時間（例如 08:14:22）。</td></tr>
        <tr><td>DateTime.tz</td><td>以 yyyy-MM-dd'T'HH:mm:ss zzz 格式計算檔案上次修改的日期時間（例如 2024-02-13T08:14:22 PST）。</td></tr>
        <tr><td>Time.tz</td><td>以 HH:mm:ss zzz 格式計算檔案的上次修改時間（例如 08:14:22 PST）。</td></tr>
        <tr><td>DateFormat:<em>format</em></td><td>以指定格式（<code>format</code>）計算系統的當前日期時間。有關可用的日期時間格式，請參閱 <a href="/26.3/self-hosted/zh/scripting/value-formatters/date-formatters#date-formats-with-literal-characters">範例日期格式</a>。</td></tr>
      </tbody>
    </table>

    <p><strong>範例</strong>：下載後，您希望將每個檔案從下載資料夾移動到 History 子資料夾。使用 <strong>After Get</strong> 欄位為 <code>move</code> 命令提供 <code>%SourceFilename%</code> 宏。</p>

    <img src="/public/images/server_command_example.png" alt="Server command example" width="500" />
  </>;

export const CommonProxySettings = () => <>
    <p>這是一組用於識別連線所經代理並對其進行身分驗證的設定。預設情況下，本節使用 <a href="/26.3/self-hosted/zh/getting-started/administration/settings/security">安全設定</a> 頁面的 <a href="/26.3/self-hosted/zh/getting-started/administration/settings/proxy-settings">代理設定</a> 部分中的全域設定。清除此核取方塊可為您的端口提供特定的設定。</p>
    <table>
      <thead>
        <tr><th>設定</th><th>描述</th></tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>代理型別</strong></td>
          <td>基於代理的防火牆使用的協議。</td>
        </tr>
        <tr>
          <td><strong>代理主機</strong></td>
          <td>基於代理的防火牆的名稱或 IP 地址。</td>
        </tr>
        <tr>
          <td><strong>代理端口</strong></td>
          <td>基於代理的防火牆的 TCP 端口。</td>
        </tr>
        <tr>
          <td><strong>代理使用者</strong></td>
          <td>用於透過基於代理的防火牆進行身分驗證的使用者名稱。</td>
        </tr>
        <tr>
          <td><strong>代理密碼</strong></td>
          <td>用於對基於代理的防火牆進行身分驗證的密碼。</td>
        </tr>
        <tr>
          <td><strong>身分驗證方案</strong></td>
          <td>保留預設值 <strong>None</strong> 或選擇以下身分驗證方案之一：<strong>Basic</strong>、<strong>Digest</strong>、<strong>Proprietary</strong> 或 <strong>NTLM</strong>。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const SlasTab = ({siteName = "知行之桥"}) => <>
    <p><em>與配置服務級別協議 (SLA) 相關的設定。</em></p>
    <p>
      SLA 允許配置預期流程中端口傳送或接收的資料量，並設定預期達到該資料量的時間範圍。當 SLA 未達到時，{siteName} 會傳送電子郵件警告使用者，並將 SLA 標記為 <em>存在風險</em>，這意味著如果 SLA 未能儘快達到，則會被標記為 <em>已違反</em>。這讓使用者有機會介入並確定 SLA 未達到的原因，並採取適當的措施。如果在風險時間段結束時仍未達到 SLA，則會將 SLA 標記為已違反，並再次通知使用者。
    </p>
    <p>
      要定義 SLA，請啟用 <strong>預期資料量</strong>，然後點選 <strong>設定</strong> 索引標籤。
    </p>
    <img src="/public/images/sla_empty.png" alt="SLA Empty" />
    <ul>
      <li>如果端口具有單獨的傳送和接收操作，請使用選項按鈕指定 SLA 適用的方向。</li>
      <li>在視窗的 <strong>預計至少</strong> 部分中：
        <ul>
          <li>設定預計處理的最小交易數量（交易量）</li>
          <li>使用 <strong>每個</strong> 欄位指定時間範圍</li>
          <li>指示 SLA 生效的時間。如果選擇 <strong>開始於</strong>，請填寫日期和時間欄位。</li>
          <li>勾選希望 SLA 生效的星期幾對應的核取方塊。如有必要，請使用下拉功能表選擇 <strong>每天</strong>。</li>
        </ul>
      </li>
      <li>在視窗的 <strong>將狀態設定為“有風險”</strong> 部分中，指定應將 SLA 標記為有風險的時間。
        <ul>
          <li>預設情況下，只有在違反 SLA 的情況下才會傳送通知。要更改此設定，請勾選 <strong>傳送“有風險”通知</strong>。</li>
        </ul>
      </li>
    </ul>
    <p>
      以下範例顯示了為端口配置的 SLA，該端口預計在週一至週五每天接收 1000 個檔案。如果尚未收到 1000 個檔案，則會在時間段結束前 1 小時傳送風險通知。
    </p>
    <img src="/public/images/sla_defined.png" alt="SLA Configuration Example" />
    <Note>
      如果有必要，可以關閉 SLA 通知。這在維護視窗期間非常有用。點選導覽列上的 <strong>設定</strong>，然後跳轉到 <strong>通知 &gt; 通用通知</strong>。點選平板和鉛筆圖示進行編輯，並取消勾選 <strong>SLA 通知</strong> 設定。
    </Note>
  </>;

export const AlertsTab = ({siteNameShort = "知行之桥"}) => <>
    <p><em>與配置通知相關的設定。</em></p>
    <p>
      在執行服務級別協議 (SLA) 之前，需要設定電子郵件通知以接收通知。預設情況下，{siteNameShort} 使用 <a href="/26.3/self-hosted/zh/getting-started/administration/settings/alerts">通知</a> 索引標籤上的全域設定。要為此端口使用其他設定，請啟用 <strong>覆蓋全域設定</strong>。
    </p>
    <p>
      預設情況下，錯誤通知處於啟用狀態，這意味著每當出現錯誤時都會傳送電子郵件。要關閉錯誤通知，請取消選中 <strong>啟用</strong> 核取方塊。
    </p>
    <p>
      輸入 <strong>主題</strong>（必填）。勾選<strong>允許在主題中使用 ArcScript</strong>，即可在<strong>主題</strong>欄位中使用 ArcScript。選中後會顯示 <strong>ArcScript 編輯器</strong>按鈕（<img src="/public/images/rest_arcscript_editor.png" alt="ArcScript 編輯器按鈕" style={{
  display: 'inline',
  verticalAlign: 'middle',
  margin: 0
}} />）。
    </p>
    <p>
      （可選）輸入以逗號分隔的<strong>收件人</strong>電子郵件地址清單。
    </p>
  </>;

export const Message = () => <>
    <p><em>訊息設定確定端口如何搜尋訊息並在處理後管理它們。</em></p>
    <p><strong>注意：</strong>以下設定已棄用，預設處於隱藏狀態。只有先前已啟用這些設定或將其配置為非預設值的端口才會顯示它們。若要保留成功處理的檔案副本，請在工作流程中右鍵單擊該端口，選擇<strong>顯示成功路徑</strong>，然後將成功路徑連線到 <a href="/26.3/self-hosted/zh/connectors/file">File 端口</a>。</p>
    <table>
      <thead>
        <tr><th>設定</th><th>描述</th></tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>儲存到已傳送資料夾</strong>（已棄用）</td>
          <td>將端口處理的檔案複製到 Sent 資料夾。預設停用。儲存到 Sent 資料夾中的檔案不受<a href="/26.3/self-hosted/zh/getting-started/administration/settings/encryption-at-rest">靜態加密</a>保護。</td>
        </tr>
        <tr>
          <td><strong>已傳送資料夾方案</strong>（已棄用）</td>
          <td>按所選時間間隔對 <strong>Sent</strong> 資料夾中的檔案進行分組。僅在啟用<strong>儲存到已傳送資料夾</strong>時適用。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const MiscConnector = () => <>
    <p><em>特殊設定適用於特定用例。</em></p>
    <table>
      <thead>
        <tr>
          <th>設定</th>
          <th>描述</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>其他設定</strong></td>
          <td>允許在以分號分隔的清單中配置隱藏的端口設定，例如 <code>setting1=value1;setting2=value2</code>。正常的端口用例和功能不需要使用這些設定。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const Logging = () => <>
    <p><em>用於管理日誌建立和儲存的設定。</em></p>
    <table>
      <thead>
        <tr>
          <th>設定</th>
          <th>描述</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>日誌級別</strong></td>
          <td>指定要記錄在端口日誌目錄中的資訊型別：
            <ul>
              <li><b>None</b> - 不建立任何日誌。</li>
              <li><b>Error</b> - 僅當端口遇到錯誤時才建立日誌。</li>
              <li><b>Warning</b> - 僅當端口發出警告時才建立日誌。</li>
              <li><b>Info</b> - 記錄工作流程的一般資訊，包括任何錯誤和警告（如果適用）。</li>
              <li><b>Debug</b> - 記錄成功和失敗工作流程的詳細偵錯資訊。</li>
              <li><b>Trace</b> - 記錄成功和失敗工作流程的詳細跟蹤資訊。</li>
            </ul>
            <strong>請注意：</strong><strong>Debug</strong> 和 <strong>Trace</strong> 級別的日誌可能會記錄敏感資訊，包括訊息內容和 SSL 憑證。儘管連線屬性（例如密碼）被遮蔽了，但在與您的組織外部共享它們之前，請檢視此級別的日誌以避免洩漏敏感資訊。</td>
        </tr>
        <tr>
          <td><strong>日誌資料夾結構</strong></td>
          <td>指示端口根據選定的時間間隔將日誌資料夾中的檔案分組。例如，<strong>Weekly</strong> 選項指示端口每週建立一個新的子資料夾，並將該周的所有日誌儲存在該資料夾中。空白設定告訴端口將所有日誌直接儲存在日誌資料夾中。對於處理許多交易的端口，使用子資料夾有助於保持日誌的有序性並提高效能。</td>
        </tr>
        <tr>
          <td><strong>保留訊息副本</strong></td>
          <td>指示端口在日誌目錄中儲存最新訊息副本的切換。請注意，端口每個子資料夾只保留一個訊息，並且端口在再次執行時會覆蓋以前儲存的訊息。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const MacrosExamples = ({extraMacros = []}) => <>
    <p>
      某些宏（例如 %Ext% 和 %ShortDate%）不需要參數，但其他宏則需要。所有帶有參數的宏都使用以下語法：<code>%Macro:argument%</code>
    </p>

    <p>以下是帶有參數的宏的一些範例：</p>

    <ul>
      <li>%Header:headername%：其中 <code>headername</code> 是訊息上訊息頭的名稱。</li>
      <li>%Header:mycustomheader% 解析為輸入訊息上設定的 <code>mycustomheader</code> 訊息頭的值。</li>
      <li>%Header:ponum% 解析為輸入訊息上設定的 <code>ponum</code> 訊息頭的值。</li>
      <li>%RegexFilename:pattern%：其中 <code>pattern</code> 是規則運算式模式。例如，<code>%RegexFilename:^([\w][A-Za-z]+)%</code> 匹配並解析為檔名中的第一個單詞，並且不區分大小寫（<code>test_file.xml</code> 解析為 <code>test</code>）。</li>
      <li>%Vault:vaultitem%：其中 <code>vaultitem</code> 是 <a href="/26.3/self-hosted/zh/getting-started/administration/settings/global-settings-vault">vault</a> 中專案的名稱。例如，<code>%Vault:companyname%</code> 解析為儲存在保管庫中的 <code>companyname</code> 項的值。</li>
      <li>%DateFormat:format%：其中 <code>format</code> 是可接受的日期格式（有關詳細資訊，請參閱 <a href="/26.3/self-hosted/zh/scripting/value-formatters/date-formatters#sample-date-formats">範例日期格式</a>）。例如，<code>%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%</code> 解析為檔案上的日期和時間戳。</li>
      {extraMacros.filter(item => item.example).map(item => <li key={`ex-${item.name}`}>{item.example}</li>)}
    </ul>

    <p>還可以建立更復雜的宏，如以下範例所示：</p>

    <ul>
      <li>將多個宏組合在一個檔名中：<code>%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%%EXT%</code></li>
      <li>包括宏之外的文字：<code>MyFile_%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%</code></li>
      <li>在宏中包含文字：<code>%DateFormat:'DateProcessed-'yyyy-MM-dd_'TimeProcessed-'HH-mm-ss%</code></li>
    </ul>
  </>;

export const MacrosTable = ({siteName = "知行之桥", extraMacros = []}) => <>
    <p>
      在檔案命名策略中使用宏可以提高組織效率和對資料的上下文理解。透過將宏合併到檔名中，可以動態地包含相關資訊，例如識別碼、時間戳和訊息頭資訊，從而為每個檔案提供有價值的上下文。這有助於確保檔名反映對組織重要的詳細資訊。
    </p>

    <p>{siteName} 支援這些宏，它們都使用以下語法：<code>%Macro%</code>。</p>

    <table>
      <thead>
        <tr><th>宏</th><th>描述</th></tr>
      </thead>
      <tbody>
        <tr><td>ConnectorID</td><td>替換為端口的 ConnectorID。</td></tr>
        <tr><td>ConnectorName</td><td>替換為端口名稱。可用於在檔名或路徑中包含連線名稱，例如按生成備份檔案的資料庫連線標記檔案。</td></tr>
        <tr><td>Ext</td><td>替換為端口當前正在處理的檔案的副檔名。</td></tr>
        <tr><td>Filename</td><td>替換為端口當前正在處理的檔案的檔名（包括副檔名）。</td></tr>
        <tr><td>FilenameNoExt</td><td>替換為端口當前正在處理的檔案的檔名（不帶副檔名）。</td></tr>
        <tr><td>MessageId</td><td>計算端口輸出的訊息的 MessageId。</td></tr>
        <tr><td>RegexFilename:<em>pattern</em></td><td>將規則運算式模式應用於端口當前正在處理的檔案的檔名。</td></tr>
        <tr><td>Header:<em>headername</em></td><td>替換為端口正在處理的當前訊息的目標訊息頭（<code>headername</code>）的值。</td></tr>
        <tr><td>LongDate</td><td>以常規格式計算系統的當前日期時間（例如，2024 年 1 月 24 日星期三）。</td></tr>
        <tr><td>ShortDate</td><td>以 yyyy-MM-dd 格式計算系統的當前日期時間（例如 2024-01-24）。</td></tr>
        <tr><td>DateFormat:<em>format</em></td><td>以指定格式（<code>format</code>）計算系統的當前日期時間。有關可用的日期時間格式，請參閱 <a href="/26.3/self-hosted/zh/scripting/value-formatters/date-formatters#date-formats-with-literal-characters">範例日期格式</a>。</td></tr>
        <tr><td>Vault:<em>vaultitem</em></td><td>計算指定保管庫專案的值。</td></tr>
        {extraMacros.map(item => <tr key={item.name}>
            <td>{item.name}</td>
            <td>{item.description}</td>
          </tr>)}
      </tbody>
    </table>
  </>;

export const Performance = () => <>
    <p><em>與端口資源分配相關的設定。</em></p>
    <table>
      <thead>
        <tr>
          <th>設定</th>
          <th>描述</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>最大工作執行緒數</strong></td>
          <td>此端口上處理檔案時從執行緒池中消耗的最大工作執行緒數。如果設定，則會覆蓋 <a href="/26.3/self-hosted/zh/getting-started/administration/settings/advanced-settings">進階設定</a> 頁面的 <a href="/26.3/self-hosted/zh/getting-started/administration/settings/performance-settings">效能設定</a> 部分的預設設定。</td>
        </tr>
        <tr>
          <td><strong>最大檔案數</strong></td>
          <td>分配給端口的每個執行緒傳送的最大檔案數。如果設定，則會覆蓋 <a href="/26.3/self-hosted/zh/getting-started/administration/settings/advanced-settings">進階設定</a> 頁面的 <a href="/26.3/self-hosted/zh/getting-started/administration/settings/performance-settings">效能設定</a> 部分的預設設定。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const siteNameShort = "知行之橋";

export const siteName = "知行之橋";

export const ftpServerCommandExtras = <p style={{
  paddingLeft: '1.5rem',
  marginTop: '0.25rem',
  marginBottom: '0.25rem'
}}>• <code>quote</code>：按原樣將命令直接傳送到伺服器。</p>;

FTP 端口可與遠端 FTP 伺服器傳輸檔案。

## 核心功能

* 支援 FTPS (FTP over TLS/SSL) 和傳統 FTP 檔案傳輸協議
* 支援主動和被動模式，具備完善的防火牆相容性
* 支援中斷點續傳功能，適用於中斷的上傳和下載任務
* 提供高階身分驗證，包括基於憑證的用戶端身分驗證
* 支援連線池和臨時檔案處理，確保傳輸的可靠性
* 提供可選的快取功能，確保僅下載新增或更新的檔案

## 概觀

每個 FTP 端口連線上傳檔案到指定的資料夾，並從遠端 FTP 伺服器上的一組資料夾下載。

在 {siteNameShort} 工作流程中到達 FTP 端口的檔案被上傳到上傳目的檔案夾，在下載目的檔案夾中找到的檔案被下載並輸入到 {siteNameShort} 工作流程中。端口支援上傳和下載過濾規則，僅傳送和接收指定的檔名和／或副檔名。

## 端口配置

本節包含所有可配置的端口屬性。

### 設定

#### 主機配置

*與建立到遠端 FTP 主機的連線相關的設定。*

| 設定         | 描述                                                                                                          |
| ---------- | ----------------------------------------------------------------------------------------------------------- |
| **端口 ID**  | 端口的靜態唯一識別碼。                                                                                                 |
| **端口型別**   | 顯示端口名稱及其功能描述。                                                                                               |
| **端口描述**   | 一個可選欄位，用於對端口及其在工作流程中的角色進行自由說明。                                                                              |
| **遠端主機**   | FTP 伺服器的主機名或 IP 地址。                                                                                         |
| **TLS 型別** | 連線到伺服器時如何協商 TLS/SSL。當設定為 "Explicit" 時，將建立明文連線，然後用顯式命令啟動 TLS/SSL。當設定為 "Implicit" 時，將立即協商 TLS/SSL，而無需先建立明文連線。 |
| **遠端主機端口** | 連線到 FTP 伺服器的端口。                                                                                             |

#### 用戶端驗證

*與向 FTP 伺服器進行身分驗證相關的設定。*

| 設定        | 描述                |
| --------- | ----------------- |
| **使用者名稱** | 登入 FTP 伺服器的使用者名稱。 |
| **密碼**    | 登入 FTP 伺服器的密碼。    |

#### 伺服器驗證

*與驗證 FTP 伺服器身份相關的設定。*

| 設定            | 描述                                                                                                                                       |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| **伺服器公開金鑰憑證** | 用於驗證 TLS/SSL 伺服器身份的公開金鑰憑證。如果目標伺服器使用 TLS/SSL，請將此欄位設定為標識伺服器的憑證。如果伺服器憑證不可用，可以將此設定留空以允許底層 OS/JVM 執行憑證驗證，或將其設定為 `Any Certificate` 以隱式信任伺服器身份。 |

#### 上傳

*與檔案上傳到 FTP 伺服器相關的設定。*

| 設定       | 描述                                                                        |
| -------- | ------------------------------------------------------------------------- |
| **遠端目錄** | 端口處理的檔案將上傳到指定的遠端資料夾。可以在路徑中使用宏動態建立按日期劃分的資料夾（例如年份或月份資料夾）。有關更多資訊，請參閱[宏](#宏)。 |

#### 下載

*與從 FTP 伺服器下載相關的設定。*

| 設定            | 描述                                                                                |
| ------------- | --------------------------------------------------------------------------------- |
| **遠端目錄**      | 從中下載檔案的遠端資料夾。使用逗號分隔清單指定多個路徑。可以在路徑中使用宏動態建立按日期劃分的資料夾（例如年份或月份資料夾）。有關更多資訊，請參閱[宏](#宏)。 |
| **檔案掩碼**      | 確定應下載**遠端目錄**中哪些檔案的模糊匹配模式（例如 \*.txt）。                                             |
| **刪除檔案（下載後）** | 勾選這個以從 FTP 伺服器刪除成功下載的檔案。                                                          |

#### 快取

*與快取及多次下載之間檔案比對相關的設定。*

| 設定         | 描述                                                 |
| ---------- | -------------------------------------------------- |
| **檔案大小比對** | 選中此項可儲存已下載檔名和大小的記錄。之前已下載的檔案將被跳過，除非檔案大小與上次下載不同。     |
| **時間戳比對**  | 選中此項可儲存已下載檔名和最後修改時間戳的記錄。之前已下載的檔案將被跳過，除非時間戳與上次下載不同。 |

<Note><CommonCacheCleanup /> 啟用快取後，檔名不區分大小寫。例如，端口無法區分 `TEST.TXT` 和 `test.txt`。</Note>

### 進階設定

#### TLS 用戶端認證

*需要雙向 TLS 身分驗證時與用戶端身分驗證相關的設定。*

| 設定          | 描述                      |
| ----------- | ----------------------- |
| **用戶端憑證**   | 在 TLS 用戶端身分驗證期間提供的私有憑證。 |
| **用戶端憑證密碼** | 存取 TLS 用戶端憑證所需的密碼。      |

#### 伺服器命令

<CommonServerCommands extraCommands={ftpServerCommandExtras} />

#### 進階設定

*先前類別中未包含的設定。*

| 設定                     | 描述                                                                                                                                      |
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| **帳號**                 | 應該向 FTP 伺服器顯示 Windows 使用者帳戶的憑據。                                                                                                         |
| **主動模式**               | 選中此項以在遠端 FTP 伺服器上啟用主動模式。請記住，被動模式不太可能導致防火牆干擾連線。                                                                                          |
| **新命令通道**              | 指示應用程式使用新命令通道與 FTP 伺服器進行通訊。                                                                                                             |
| **新資料通道**              | 指示應用程式在與 FTP 伺服器通訊時使用新的資料通道。                                                                                                            |
| **連線池**                | 勾選此項讓端口使用一個池來存取和儲存連線。這在伺服器限制登入嘗試頻率的情況下很有用。                                                                                              |
| **下載排除副檔名**            | 端口不會下載包含這些副檔名的檔案，當指定多個副檔名時，使用逗號分隔。                                                                                                      |
| **下載排除字首**             | 端口不會下載包含這些字首的檔案，當指定多個字首時，使用逗號分隔。                                                                                                        |
| **EPSV**               | 選中此項以使用擴充套件被動模式。如果你需要使用 IPv4 以外的協議，這可能是必需的。                                                                                             |
| **FSwitch**            | 與**簡單目錄清單**結合使用。選中此項以將目錄清單限制為僅檔案。                                                                                                       |
| **最大檔案下載數**            | 在一個輪詢間隔內從 FTP 伺服器下載的最大檔案數。設定為 **-1** 以允許下載所有檔案。                                                                                         |
| **最小檔案大小**             | 要處理的最小檔案大小（以位元組為單位）。如果正在上傳的檔案小於指定大小，則最終確定為 **Skipped**。對於正在下載的檔案，端口會新增一個交易日誌項目，指示該檔案因其大小而被跳過。                                           |
| **最大檔案大小**             | 要處理的最大檔案大小（以位元組為單位）。如果正在上傳的檔案大於指定大小，則最終確定為 **Skipped**。對於正在下載的檔案，端口會新增一個交易日誌項目，指示該檔案因其大小而被跳過。                                           |
| **監控檔案增長**             | 選中此選項可讓應用程式在輪詢間隔之間儲存遠端檔案的檔案大小，並且僅下載大小不變的檔案。這可以防止端口下載仍在伺服器上寫入過程中的檔案。                                                                     |
| **被動模式地址**             | 僅在未選中**主動模式**時使用。如果未選中**被動模式地址**，應用程式將解析遠端主機以傳送來自先前伺服器回應的回覆。如果選中此項，應用程式將使用**遠端主機**設定的值。                                                 |
| **隱式 TLS 時使用 PROT 命令** | 告訴伺服器資料通道受到隱式 TLS 連線的保護。在**設定**索引標籤上選擇 TLS 型別。                                                                                          |
| **遞迴**                 | 選中此項以下載目標遠端路徑的子資料夾中的檔案。為接收到的檔案保留子目錄。                                                                                                    |
| **恢復下載**               | 如果啟用，當檔案下載期間發生錯誤時，端口會儲存已下載的檔案部分，並在下次嘗試下載時嘗試下載檔案的其餘部分。                                                                                   |
| **恢復上傳**               | 如果啟用，當檔案上傳期間發生錯誤時，端口會記錄已傳輸的位元組數，並嘗試在下一次上傳嘗試時上傳檔案的剩餘部分。                                                                                  |
| **簡單目錄清單**             | 當你需要一個簡單的目錄清單命令用於傳送回無法解析的長回應的伺服器時，請選中此選項。設定此項後，如果端口仍然無法解析目錄清單，請新增 **FSwitch** 設定以將目錄清單限制為僅檔案。                                           |
| **啟用 TLS 協議**          | 建立傳出連線時支援的 TLS/SSL 協議清單。最佳做法是僅使用 TLS 協議。請記住，SSLv2 和 SSLv3 被認為存在漏洞，僅在交易夥伴不支援更高版本時使用。請注意，TLS v1.3 尚未被普遍採用，如果目標伺服器不支援，可能會被拒絕。              |
| **臨時下載副檔名**            | 在傳輸過程中附加到檔案下載的臨時副檔名。                                                                                                                    |
| **臨時上傳副檔名**            | 在傳輸過程中附加到檔案上傳的臨時副檔名。                                                                                                                    |
| **臨時上傳路徑**             | 上傳檔案的遠端 FTP 伺服器上的臨時路徑。傳輸完成後，檔案將移至永久上傳路徑。                                                                                                |
| **臨時上傳字首**             | 在傳輸過程中新增到檔案上傳的臨時檔案字首。                                                                                                                   |
| **逾時時間**               | 端口在擲回逾時錯誤之前等待連線回應的持續時間。                                                                                                                 |
| **傳輸模式**               | 檔案應以 ASCII 還是二進位格式傳輸。如果設定為**預設**，伺服器選擇傳輸模式。                                                                                             |
| **單交易上傳**              | 選中此項以在單一交易中上傳所有檔案。預設情況下（未選中），應用程式在每次上傳後從伺服器登出。                                                                                          |
| **本地檔案命名規則**           | 用於為端口輸出訊息分配檔名的規則。可以在檔名中使用宏動態包含識別碼和時間戳等資訊。更多資訊，請參見[宏](#宏)。                                                                               |
| **接收過濾規則**             | 一個 glob 模式過濾器，用於確定應從遠端儲存（例如，\*.txt）下載哪些檔案。可以使用否定模式來指示不應下載的檔案（例如，-\*.tmp）。當你需要多個**檔案掩碼**模式時使用此設定。多個模式可以用逗號分隔，後面的過濾器優先，除非找到完全匹配。          |
| **使用 MLSD 進行目錄清單**     | 選中此項以使用 MLSD 命令傳回詳細的目錄清單。某些舊版 FTP 伺服器可能不支援此功能，並可能傳回 *Command not understood* 等錯誤。在舊版伺服器上取消選中此項以解決該錯誤。                                   |
| **處理延遲**               | **交易**索引標籤中檔案處理延遲的時間（秒）。這是一箇舊版設定。最佳做法是[使用 File 端口](../flows/designing-a-flow#interacting-with-the-local-file-system)來管理本地檔案系統，而不是使用此設定。 |

#### 代理設定

<CommonProxySettings />

#### 訊息

<Message />

#### 日誌

<Logging />

#### 其他設定

<MiscConnector />

### 自動化

#### 自動化設定

*與端口自動處理檔案相關的設定。*

| 設定           | 描述                                                                          |
| ------------ | --------------------------------------------------------------------------- |
| **上傳**       | 到達端口的檔案是否會自動上傳。                                                             |
| **重試間隔（分）**  | 再次傳送檔案之前等待的時長。                                                              |
| **最大重試次數**   | 端口處理輸入檔案的最大次數。是否成功基於伺服器的成功確認。如果設定為 0，那麼端口將無限次嘗試處理失敗檔案。                      |
| **下載**       | 端口是否應該為要下載的檔案自動輪詢遠端下載路徑。                                                    |
| **間隔**       | 自動下載嘗試的間隔時間。                                                                |
| **整點後分鍾數**   | 每小時計劃的分鐘偏移量。僅當上面的間隔設定為 *每小時* 時適用。例如，如果此值設定為 5，則自動化服務在 1:05、2:05、3:05 等時間下載。 |
| **時間**       | 嘗試應發生的時間。僅當上面的間隔設定為 *每天*、*每週* 或 *每月* 時適用。                                   |
| **日期**       | 嘗試應發生的日期。僅當上面的間隔設定為 *每週* 或 *每月* 時適用。                                        |
| **分鐘數**      | 嘗試下載之前等待的分鐘數。僅當上面的間隔設定為 *分鐘* 時適用。                                           |
| **Cron 運算式** | 一個五位字串，表示確定嘗試發生時間的 Cron 運算式。僅當上面的間隔設定為 *高階* 時適用。                            |

#### 效能

<Performance />

### 告警索引標籤

<AlertsTab />

### SLA 索引標籤

<SlasTab />

## 建立一個連線

連線到遠端 FTP 伺服器需要以下設定：

* **遠端主機**
* **TLS 型別**
* **遠端主機端口**
* **使用者名稱**
* **密碼**

在**高階**索引標籤下，FTP 伺服器可能還需要**伺服器公開金鑰憑證**和 [TLS 用戶端認證](#tls-用戶端認證)。

## 上傳檔案

FTP 端口從**交易**索引標籤上傳檔案。如果端口中啟用了**上傳自動化**功能，檔案將自動上傳到 FTP 伺服器。

**遠端目錄**應設定為遠端 FTP 伺服器上應上傳檔案的資料夾。可以使用[宏](#宏)動態建立按日期劃分的資料夾（例如年份或月份資料夾）。登入到伺服器後，應用程式會將目錄更改到指定的資料夾。可以在**高階**索引標籤中設定臨時上傳副檔名、字首或路徑，以確保檔案在**遠端目錄**資料夾中結束之前已被完全傳輸。

如果有任何檔案無法上傳，端口會在**重試間隔**分鐘後嘗試傳送它們。此過程一直持續，直到達到**最大重試次數**設定，之後端口將引發錯誤，檔案將不再自動傳送。

## 下載檔案

下載的檔案顯示在端口的**交易**索引標籤中，或者傳遞給工作流程中的下一個端口。如果端口中啟用了**下載自動化**功能，檔案將自動從 FTP 伺服器上下載，並且可以透過單擊**交易**索引標籤中的**接收檔案**按鈕手動下載。

**遠端目錄**應設定為遠端 FTP 伺服器上的資料夾，檔案應從該資料夾下載。可以使用[宏](#宏)動態建立按日期劃分的資料夾（例如年份或月份資料夾）。登入到伺服器後，應用程式將目錄更改到指定的資料夾。**檔案掩碼**屬性過濾檔案，以便只從伺服器下載與全域模式匹配的檔名。可以在**高階**索引標籤中設定臨時下載副檔名或字首，以確保檔案在**交易**索引標籤中結束之前已被完全傳輸。

\*\*刪除檔案（下載後）\*\*設定可用於在成功下載檔案後刪除遠端伺服器上的檔案。

完成配置後，檔案將會根據**自動下載**的配置下載，或者在**交易**索引標籤上手動點選**接收檔案**按鈕。

## 子目錄訊息頭

如果**遞迴**被選擇，FTP 端口從**遠端目錄**接收檔案時：

* 收到的檔案訊息將在其中繼資料中包含子目錄訊息頭。
* 這個訊息頭包含子目錄，其相對於配置的**遠端目錄**。
* 這個子目錄訊息頭可以被其它支援該功能的傳送端口所識別和支援。

當傳送檔案時，如果傳送到 FTP 端口**遠端目錄**的訊息中存在子目錄訊息頭：

* 檔案將被放置在子目錄（相對於 FTP 端口**遠端目錄**設定）中，該子目錄在子目錄訊息頭中指定。
* 如果有權限，子目錄會被自動建立。

## 宏

<MacrosTable />

### 範例

<MacrosExamples />
