> ## 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.

# ICAP 端口

> ICAP 端口支援與網際網路內容適配協議 (ICAP) 伺服器整合，提供即時安全掃描和內容適配服務。

ICAP 端口支援與 知行之橋 中的網際網路內容適配協議 (ICAP) 伺服器無縫整合。此端口充當應用程式和 ICAP 相容伺服器之間的中介，從而促進內容適配服務，尤其是即時安全掃描。

## 關鍵功能

* 即時內容適配和安全掃描
* 支援請求修改 (REQMOD) 和回應修改 (RESPMOD) 模式
* 支援 TLS 加密，確保安全通訊
* 可自定義 HTTP 封裝，相容舊系統
* 靈活的身分驗證選項，包括私有憑證支援
* 可用作流程中的"轉換"步驟。標記為需要注意的檔案會產生錯誤，而其他檔案則照常繼續執行流程。

## 端口配置

此部分包含所有可配置的端口屬性。

### 設定

*與端口核心配置相關的設定。*

| 設定 | 描述 |
| - | - |
| **端口 ID** | 端口的靜態唯一識別碼。 |
| **端口型別** | 顯示端口名稱及其功能描述。 |
| **端口描述** | 可選欄位，用於對端口及其在工作流程中的角色進行自由格式描述。 |
| **ICAP URI** | （必需）要連線的 ICAP 伺服器的 ICAP 統一資源識別碼 (URI)。必須採用以下格式：`icap://<hostname>:<port>/<service_name>`。 |
| **ICAP 頭** | 可選標頭，用於滿足特定伺服器的要求。使用此選項可新增要包含在傳出 ICAP 請求中的自定義 ICAP 請求標頭。 |
| **TLS 配置** | 勾選此項可為 ICAP 連線啟用 TLS 加密。 |
| **TLS 伺服器憑證** | 用於驗證 TLS/SSL 伺服器身份的公開金鑰憑證。僅當 ICAP 伺服器啟用了 TLS 時才需要此項。將其設定為 `Any Certificate` 可無條件信任 ICAP 伺服器的身份。僅在啟用 **TLS 配置** 時才相關。 |
| **本地檔案命名方案** | 為端口輸出訊息分配檔名的方案。可以在檔名中使用宏來動態包含識別碼和時間戳等資訊。更多資訊，請參閱[宏](#宏)。 |

### 進階選項卡

#### TLS 用戶端身分驗證

| 設定 | 描述 |
| - | - |
| **私密金鑰憑證** | 選擇、建立或上傳用於身分驗證的 TLS 憑證。 |
| **憑證密碼** | 存取 **私密金鑰憑證** 所需的密碼。 |

#### 其他設定

| 設定 | 描述 |
| - | - |
| **ICAP 模式** | 指定 ICAP 交易的型別：使用 REQMOD 進行請求修改，或使用 RESPMOD 進行回應修改。預設為 REQMOD。 |
| **Allow ArcScript in ICAP URI** | 允許計算 URI 中的 ArcScript 運算式。選中後會顯示 **ArcScript 編輯器**按鈕（![ArcScript 編輯器按鈕](https://mintcdn.com/qiao/HyyOl9gYIsxaiGgh/26.4/images/rest_arcscript_editor.png?fit=max\&auto=format\&n=HyyOl9gYIsxaiGgh\&q=85\&s=9113829cbe1ae9572316802c46a91bec)），可用於透過 ArcScript 構建動態請求 URI。 |
| **Allow ArcScript in Headers** | 允許在發出查詢之前計算標頭中的 ArcScript 運算式。例如，`[_ \| now('yyyy-MM-dd')]` 計算當前日期，`[_message.header:headername]` 計算輸入訊息上下文中的 headername 標頭。 |
| **預覽大小** | 控制傳送到 ICAP 伺服器的訊息正文預覽的大小。`Automatic` 選項會讓用戶端使用 OPTIONS 請求查詢伺服器，以確定最佳預覽大小。或者，可以指定預覽大小的確切數字（以位元組為單位）。 |
| **資料塊大小** | 預覽階段後傳送的每個資料塊的最大大小（以位元組為單位）（或對於沒有預覽的請求）。預設值為 16KB。 |
| **逾時（秒）** | 端口在擲回逾時錯誤之前等待連線回應的時間（以秒為單位）。預設值為 60 秒。 |
| **回應標頭** | 以逗號分隔的 ICAP 回應標頭名稱清單（例如 `X-Infection-Found,X-Scan-Result`）將被提取並作為中繼資料新增到已處理的訊息中。 |
| **TLS 已啟用協議** | 建立傳出連線時支援的 TLS/SSL 協議清單。最佳實踐是僅使用 TLS 協議。SSL v2 和 SSL v3 被認為存在漏洞，只有在貿易伙伴不支援更高版本時才應使用。請注意，TLS v1.3 尚未被普遍採用，如果目標伺服器不支援它，可能會被拒絕。 |

#### 代理設定

這是一組用於識別連線所經代理並對其進行身分驗證的設定。預設情況下，本節使用 [安全設定](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/security.md) 頁面的 [代理設定](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/proxy-settings.md) 部分中的全域設定。清除此核取方塊可為您的端口提供特定的設定。

<table><thead><tr><th>設定</th><th>描述</th></tr></thead>
<tbody><tr><td>**代理型別**</td>
<td>基於代理的防火牆使用的協議。</td></tr>
<tr><td>**代理主機**</td>
<td>基於代理的防火牆的名稱或 IP 地址。</td></tr>
<tr><td>**代理端口**</td>
<td>基於代理的防火牆的 TCP 端口。</td></tr>
<tr><td>**代理使用者**</td>
<td>用於透過基於代理的防火牆進行身分驗證的使用者名稱。</td></tr>
<tr><td>**代理密碼**</td>
<td>用於對基於代理的防火牆進行身分驗證的密碼。</td></tr>
<tr><td>**身分驗證方案**</td>
<td>保留預設值 **None** 或選擇以下身分驗證方案之一：**Basic**、**Digest**、**Proprietary** 或 **NTLM**。</td></tr></tbody></table>

#### 日誌

*用於管理日誌建立和儲存的設定。*

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

#### 雜項

*特殊設定適用於特定用例。*

<table><thead><tr><th>設定</th>
<th>描述</th></tr></thead>
<tbody><tr><td>**其他設定**</td>
<td>允許在以分號分隔的清單中配置隱藏的端口設定，例如 `setting1=value1;setting2=value2`。正常的端口用例和功能不需要使用這些設定。</td></tr></tbody></table>

### 自動化

#### 自動化設定

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

| 設定 | 描述 |
| - | - |
| **傳送** | 到達端口的檔案是否自動作為 ICAP 交易傳送。 |

#### 效能

*與端口資源分配相關的設定。*

<table><thead><tr><th>設定</th>
<th>描述</th></tr></thead>
<tbody><tr><td>**最大工作執行緒數**</td>
<td>此端口上處理檔案時從執行緒池中消耗的最大工作執行緒數。如果設定，則會覆蓋 [進階設定](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/advanced-settings.md) 頁面的 [效能設定](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/performance-settings.md) 部分的預設設定。</td></tr>
<tr><td>**最大檔案數**</td>
<td>分配給端口的每個執行緒傳送的最大檔案數。如果設定，則會覆蓋 [進階設定](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/advanced-settings.md) 頁面的 [效能設定](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/performance-settings.md) 部分的預設設定。</td></tr></tbody></table>

### 告警索引標籤

*與配置通知相關的設定。*

在執行服務級別協議 (SLA) 之前，需要設定電子郵件通知以接收通知。預設情況下，知行之桥 使用 [通知](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/alerts.md) 索引標籤上的全域設定。要為此端口使用其他設定，請啟用 **覆蓋全域設定**。

預設情況下，錯誤通知處於啟用狀態，這意味著每當出現錯誤時都會傳送電子郵件。要關閉錯誤通知，請取消選中 **啟用** 核取方塊。

輸入 **主題**（必填）。勾選**允許在主題中使用 ArcScript**，即可在**主題**欄位中使用 ArcScript。選中後會顯示 **ArcScript 編輯器**按鈕（![ArcScript 編輯器按鈕](https://docs.kasoftware.com/26.4/images/rest_arcscript_editor.png)）。

（可選）輸入以逗號分隔的**收件人**電子郵件地址清單。

### SLA 索引標籤

*與配置服務級別協議 (SLA) 相關的設定。*

SLA 允許配置預期流程中端口傳送或接收的資料量，並設定預期達到該資料量的時間範圍。當 SLA 未達到時，知行之桥 會傳送電子郵件警告使用者，並將 SLA 標記為 *存在風險*，這意味著如果 SLA 未能儘快達到，則會被標記為 *已違反*。這讓使用者有機會介入並確定 SLA 未達到的原因，並採取適當的措施。如果在風險時間段結束時仍未達到 SLA，則會將 SLA 標記為已違反，並再次通知使用者。

SLA 轉換為 *存在風險* 或 *已違反* 狀態時，也會寫入[應用程式日誌](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/activity.md#应用程序日志)，這意味著應用程式效能監控 (APM) 和日誌擷取工具也可以針對這些狀態發出警示。

要定義 SLA，請啟用 **預期資料量**，然後點選 **設定** 索引標籤。

![SLA Empty](https://docs.kasoftware.com/26.4/images/sla_empty.png)
<ul><li>如果端口具有單獨的傳送和接收操作，請使用選項按鈕指定 SLA 適用的方向。</li>
<li>在視窗的 **預計至少** 部分中：
<ul><li>設定預計處理的最小交易數量（交易量）</li>
<li>使用 **每個** 欄位指定時間範圍</li>
<li>指示 SLA 生效的時間。如果選擇 **開始於**，請填寫日期和時間欄位。</li>
<li>勾選希望 SLA 生效的星期幾對應的核取方塊。如有必要，請使用下拉功能表選擇 **每天**。</li></ul></li>
<li>在視窗的 **將狀態設定為“有風險”** 部分中，指定應將 SLA 標記為有風險的時間。
<ul><li>預設情況下，只有在違反 SLA 的情況下才會傳送通知。要更改此設定，請勾選 **傳送“有風險”通知**。</li></ul></li></ul>

以下範例顯示了為端口配置的 SLA，該端口預計在週一至週五每天接收 1000 個檔案。如果尚未收到 1000 個檔案，則會在時間段結束前 1 小時傳送風險通知。

![SLA Configuration Example](https://docs.kasoftware.com/26.4/images/sla_defined.png)

> [!NOTE]
>
> 如果有必要，可以關閉 SLA 通知。這在維護視窗期間非常有用。點選導覽列上的 **設定**，然後跳轉到 **通知 > 通用通知**。點選平板和鉛筆圖示進行編輯，並取消勾選 **SLA 通知** 設定。

### 交易

此索引標籤列出了與端口關聯的所有訊息。使用搜尋欄查詢特定訊息，或點選漏斗圖示應用過濾器。您可以按時間、訊息方向和／或狀態進行過濾。

收到的回應會顯示在此索引標籤上。

### 事件

| 事件 | 描述 |
| - | - |
| **Response** | 此事件允許擴充套件端口解析來自 ICAP 伺服器的回覆的方式。預設情況下，端口會根據 ICAP 伺服器的狀態程式碼最終確定訊息。但是，由於 ICAP 伺服器也可以在回應標頭中包含掃描詳細資訊，因此可以透過 Response 事件對這些標頭應用自定義邏輯，以實現更精細的控制。此事件不會建立任何輸出；但是，可以使用 `arc:throw` 關鍵字來阻止檔案（例如，如果特定標頭值指示掃描失敗）。 |
| **Before Send** | 此事件在端口完全準備好檔案以傳送/處理檔案之後，但在實際傳送/處理發生之前觸發。 |
| **After Receive** | 此事件在端口收到檔案之後觸發。 |

Response 事件中可用的參數如下：

* StatusCode：ICAP 回應狀態程式碼（例如 200、204 或 4xx）
* \_response：ICAP 回應。您可以使用 `[_response.header:xxx]` 取得特定的回應頭。
* \_message：用於引用輸入訊息（回應頭和正文），並將回應頭新增到輸出中。

## 宏

在檔案命名策略中使用宏可以提高組織效率和對資料的上下文理解。透過將宏合併到檔名中，可以動態地包含相關資訊，例如識別碼、時間戳和訊息頭資訊，從而為每個檔案提供有價值的上下文。這有助於確保檔名反映對組織重要的詳細資訊。

知行之桥 支援這些宏，它們都使用以下語法：`%Macro%`。

<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:*pattern*</td><td>將規則運算式模式應用於端口當前正在處理的檔案的檔名。</td></tr>
<tr><td>Header:*headername*</td><td>替換為端口正在處理的當前訊息的目標訊息頭（`headername`）的值。</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:*format*</td><td>以指定格式（`format`）計算系統的當前日期時間。有關可用的日期時間格式，請參閱 [範例日期格式](https://docs.kasoftware.com/26.4/self-hosted/zh/scripting/value-formatters/date-formatters.md#date-formats-with-literal-characters)。</td></tr>
<tr><td>Vault:*vaultitem*</td><td>計算指定保管庫專案的值。</td></tr></tbody></table>

### 範例

某些宏（例如 %Ext% 和 %ShortDate%）不需要參數，但其他宏則需要。所有帶有參數的宏都使用以下語法：`%Macro:argument%`

以下是帶有參數的宏的一些範例：

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

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

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


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.