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

# FTP Server Connector

> Configuration and usage guide for the CData Arc FTP Server connector, which provides connection credentials to access the built-in FTP server.

export const ServerStatus = () => <>
    <p><em>コネクタの基盤サービスの現在の状態。以下のステータスが使用可能です：</em></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>サービスは設定済みですが、現在は実行されていません。</td>
        </tr>
        <tr>
          <td><strong>未設定</strong></td>
          <td>基盤となるプロファイルまたはサービスが設定されていません。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const NameDescription = ({extraRows}) => <table>
    <thead>
      <tr>
        <th>設定</th>
        <th>説明</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><strong>Connector Id</strong></td>
        <td>コネクタの静的で一意の識別子です。</td>
      </tr>
      <tr>
        <td><strong>Connector Type</strong></td>
        <td>コネクタ名とその機能の説明を表示します。</td>
      </tr>
      <tr>
        <td><strong>Connector Description</strong></td>
        <td>コネクタおよびフロー内でのその役割について自由形式の説明を提供するためのオプションフィールドです。</td>
      </tr>
      {extraRows}
    </tbody>
  </table>;

export const SlasTab = ({siteName = "CData Arc"}) => <>
    <p><em>サービスレベルアグリーメント（SLA）の設定に関する設定です。</em></p>
    <p>
      SLA を使用すると、フロー内のコネクタが送受信すると見込まれるボリュームを設定し、そのボリュームを達成すると見込まれる期間を設定できます。{siteName} は、SLA が達成されない場合にユーザーへ警告するメールを送信し、SLA を<em>At Risk</em> としてマークします。これは、SLA が間もなく達成されない場合に<em>Violated</em> としてマークされることを意味します。これにより、ユーザーは介入してSLA が達成されない理由を特定し、適切な対応を取る機会を得られます。At Risk 期間の終了時点でもSLA が達成されない場合、SLA はviolated としてマークされ、ユーザーに再度通知されます。
    </p>
    <p>
      SLA を定義するには、<strong>Expected Volume</strong> をオンに切り替え、<strong>Settings</strong> タブをクリックします。
    </p>
    <img src="/public/images/sla_empty.png" alt="SLA Empty" />
    <ul>
      <li>コネクタに送信と受信の個別のアクションがある場合は、ラジオボタンを使用してSLA がどちらの方向に適用されるかを指定します。</li>
      <li>ウィンドウの<strong>Expect at least</strong> 部分で、次を設定します。
        <ul>
          <li>処理を見込む最小トランザクション数（ボリューム）を設定します。</li>
          <li><strong>Every</strong> フィールドを使用して期間を指定します。</li>
          <li>SLA を有効にするタイミングを指定します。<strong>Starting on</strong> を選択した場合は、日付および時刻フィールドを入力します。</li>
          <li>SLA を有効にしたい曜日のチェックボックスをオンにします。必要に応じて、ドロップダウンで<strong>Everyday</strong> を選択します。</li>
        </ul>
      </li>
      <li>ウィンドウの<strong>Set status to 'At Risk'</strong> 部分で、SLA をAt Risk としてマークするタイミングを指定します。
        <ul>
          <li>デフォルトでは、SLA が違反状態になるまで通知は送信されません。これを変更するには、<strong>Send an 'At Risk' notification</strong> をオンにします。</li>
        </ul>
      </li>
    </ul>
    <p>
      次の例は、月曜日から金曜日まで毎日1000 件のファイルを受信すると見込むコネクタ向けに設定されたSLA を示しています。1000 件のファイルが受信されていない場合、期間の終了の1時間前にAt Risk 通知が送信されます。
    </p>
    <img src="/public/images/sla_defined.png" alt="SLA Configuration Example" />
    <Note>
      必要に応じてSLA アラートをオフにすることができます。これはメンテナンスウィンドウ中に役立ちます。navbar で<strong>Settings</strong> をクリックし、<strong>Alerts &gt; General Alerts</strong> に移動します。タブレットと鉛筆のアイコンをクリックして編集し、<strong>SLA Alerts</strong> 設定のチェックを外します。
    </Note>
  </>;

export const AlertsTab = ({siteNameShort = "Arc"}) => <>
    <p><em>アラートの設定に関する設定です。</em></p>
    <p>
      サービスレベルアグリーメント（SLA）を実行する前に、通知用のメールアラートをセットアップする必要があります。デフォルトでは、{siteNameShort} は<a href="/26.3/self-hosted/ja/getting-started/administration/settings/alerts">Alerts</a> タブのグローバル設定を使用します。このコネクタに別の設定を使用するには、<strong>Override global setting</strong> をオンに切り替えます。
    </p>
    <p>
      デフォルトではエラーアラートが有効になっており、エラーが発生するたびにメールが送信されます。これをオフにするには、<strong>Enable</strong> チェックボックスのチェックを外します。
    </p>
    <p>
      <strong>Subject</strong>（必須）を入力します。<strong>Allow {siteNameShort}Script in Subject</strong> をチェックすると、<strong>Subject</strong> フィールドで{siteNameShort}Script を使用できます。これを選択すると、<strong>{siteNameShort}Script エディタ</strong>ボタンが表示されます（<img src="/public/images/rest_arcscript_editor.png" alt="arcscript editor button" style={{
  display: 'inline',
  verticalAlign: 'middle',
  margin: 0
}} />）。
    </p>
    <p>
      必要に応じて<strong>Recipient</strong> のメールアドレスをカンマ区切りのリストで入力します。
    </p>
  </>;

export const Message = () => <>
    <p><em>Message 設定は、コネクタがメッセージを検索する方法と、処理後にメッセージを管理する方法を決定します。</em></p>
    <p><strong>Note：</strong> 以下の設定は非推奨となり、デフォルトで非表示になっています。以前に有効化またはデフォルト以外の値に設定されていたコネクタにのみ表示されます。処理済みファイルのコピーを保持するには、フロー内のコネクタを右クリックし、<strong>成功パスを表示</strong>を選択して、成功パスを<a href="/26.3/self-hosted/ja/connectors/file">File コネクタ</a>に接続してください。</p>
    <table>
      <thead>
        <tr><th>設定</th><th>説明</th></tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>Sent フォルダに保存</strong>（非推奨）</td>
          <td>コネクタが処理したファイルをSent フォルダにコピーします。デフォルトで無効です。Sent フォルダに保存されたファイルは<a href="/26.3/self-hosted/ja/getting-started/administration/settings/encryption-at-rest">保存データの暗号化</a>の対象外です。</td>
        </tr>
        <tr>
          <td><strong>Sent フォルダのスキーム</strong>（非推奨）</td>
          <td>選択した時間間隔で<strong>Sent</strong> フォルダ内のファイルをグループ化します。<strong>Sent フォルダに保存</strong>が有効な場合のみ適用されます。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const MiscConnector = () => <>
    <p><em>Miscellaneous 設定は、特定のユースケース向けの設定です。</em></p>
    <table>
      <thead>
        <tr>
          <th>設定</th>
          <th>説明</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>Other Settings</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>Log Level</strong></td>
          <td>コネクタが生成するログの詳細度です。サポートを依頼する際は、これを<strong>Debug</strong> に設定してください。</td>
        </tr>
        <tr>
          <td><strong>Log Subfolder Scheme</strong></td>
          <td>選択した間隔に従って、コネクタがLogs フォルダ内のファイルをグループ化するよう指示します。<strong>Weekly</strong> オプション（デフォルト）は、コネクタが毎週新しいサブフォルダを作成し、その週のすべてのログをそのフォルダに保存するよう指示します。この設定を空白のままにすると、コネクタはすべてのログをLogs フォルダに直接保存します。多数のトランザクションを処理するコネクタでは、サブフォルダを使用することでログを整理しやすくなり、パフォーマンスが向上します。</td>
        </tr>
        <tr>
          <td><strong>Log Messages</strong></td>
          <td>処理したファイルのログエントリにファイル自体のコピーを含めるには、これをオンにします。これを無効にすると、<strong>Transactions</strong> タブからファイルのコピーをダウンロードできなくなる場合があります。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const ProfileLogging = () => <>
    <p><em>ログの作成と保存を制御する設定です。</em></p>
    <table>
      <thead>
        <tr>
          <th>設定</th>
          <th>説明</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>Log Level</strong></td>
          <td>コネクタが生成するログの詳細度です。サポートを依頼する際は、これを<strong>Debug</strong> に設定してください。</td>
        </tr>
        <tr>
          <td><strong>Log Rotate Interval</strong></td>
          <td>新しいログファイルを作成するまでに待機する日数です。</td>
        </tr>
        <tr>
          <td><strong>Log Delete Interval</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/ja/getting-started/administration/settings/global-settings-vault">Vault</a> 内のアイテムの名前です。例えば、<code>%Vault:companyname%</code> は、Vault に保存された<code>companyname</code> アイテムの値に解決されます。</li>
      <li>%DateFormat:format%：<code>format</code> は許容される日付形式です（詳細は<a href="/26.3/self-hosted/ja/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>1 つのファイル名で複数のマクロを組み合わせる：<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 = "CData Arc", 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>システムの現在の日時を長い形式（例：Wednesday, January 24, 2024）で評価します。</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/ja/scripting/value-formatters/date-formatters#date-formats-with-literal-characters">日付形式のサンプル</a>を参照してください。</td></tr>
        <tr><td>Vault:<em>vaultitem</em></td><td>指定されたVault アイテムの値に評価されます。</td></tr>
        {extraMacros.map(item => <tr key={item.name}>
            <td>{item.name}</td>
            <td>{item.description}</td>
          </tr>)}
      </tbody>
    </table>
  </>;

export const companyName = "CData";

export const siteNameShort = "Arc";

export const siteName = "CData Arc";

FTP Server connectors provide connection credentials to access the full-featured {siteNameShort} FTP Server.

## Key Capabilities

* Full-featured embedded FTP server with FTPS (FTP over TLS/SSL) support
* Multi-client architecture with individual user profiles and directory isolation
* Configurable permissions for send and receive directories per trading partner
* Welcome banners, file filtering, and temporary file handling for reliable operations
* Support for both active and passive modes with configurable port ranges

## Overview

The {siteNameShort} FTP Server is primarily configured on the [Profiles](../getting-started/administration/profiles) page. Then, individual FTP Server connectors provide a unique client profile to authenticate to the FTP Server. The client profile consists of a username (which matches the FTP Server connector's **Connector Id**), a password, a set of send and receive directories, and permissions to read and/or write files in these directories.

FTP clients are not given permissions to the root of the FTP Server, which means that FTP clients should always *cd* into the send (to download) and receive (to upload) directories after connecting.

### Video Resources

Watch this short video for an overview of how to configure an FTP Server. The video uses an SFTP Server in the example, but the principles are the same for FTP.

<iframe width="560" height="315" src="https://www.youtube.com/embed/R1OrVVdqySU" frameBorder="0" allowFullScreen />

## Profile Configuration

The FTP Server Profile must be configured before connections can be established with individual FTP Server connectors. Click **Profiles** on the navbar, then click the **FTP Server** tab.

### Server Configuration

*Server implementation settings.*

| Setting                    | Description                                                                                                                                                                                                                                                                                                                            |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Port**                   | The port on which the FTP Server listens for incoming connections.                                                                                                                                                                                                                                                                     |
| **FTP Over TLS**           | How TLS/SSL should be negotiated when clients connect to the server. Choose **Explicit** to establish a plain text connection where TLS/SSL is then started with an explicit command. Choose **Implicit** to immediately negotiate TLS/SSL without establishing a plain text connection.                                               |
| **Server TLS Certificate** | The TLS certificate that identifies the server. Only required if the server is operating as an FTPS server (in other words, if TLS/SSL is enabled).                                                                                                                                                                                    |
| **Certificate Password**   | The password required to access the **Server TLS Certificate**.                                                                                                                                                                                                                                                                        |
| **Welcome Message**        | The banner presented to FTP clients when they connect to the server.                                                                                                                                                                                                                                                                   |
| **Root Directory**         | The root directory for the server. Subfolders are created in the root for individual client profiles (in other words, for each configured FTP Server connector). Each client profile includes a *Send* folder, where clients can download files from the server, and a *Receive* folder, where clients can upload files to the server. |
| **Allowed Files Filter**   | A glob pattern that determines which files are accepted by the FTP server. You can use negative patterns to indicate files that should *not* be downloaded (for example, -\*.tmp). Separate multiple file types by commas (for example, \*.x12,\*.edi).                                                                                |

### Other Settings

*Settings that do not fall into the previous category.*

| Setting                   | Description                                                                                                                                                                                                                                                                                                                                                                  |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Active Mode**           | Check this to enable Active mode on the remote FTP server. Keep in mind that Passive mode is less likely to result in firewall interference with the connection.                                                                                                                                                                                                             |
| **Inactivity Timeout**    | The length of time (in seconds) that must pass without activity for a user to time out.                                                                                                                                                                                                                                                                                      |
| **Passive Port Range**    | When using Passive mode, the application uses any available port to listen for incoming data connections. You can override this by setting this field to a port range in `start-end` format. For example: `1024-` refers to ports higher than 1024 (inclusive) and `1024-2048` refers to ports between 1024 and 2048 (inclusive).                                            |
| **Passive Address**       | When using Passive mode, the application returns the IP address for the local interface. You can override this by setting this field to a specific public IP address.                                                                                                                                                                                                        |
| **TLS Enabled Protocols** | The list of TLS/SSL protocols supported when establishing outgoing connections. Best practice is to only use TLS protocols. SSL v2 and SSL v3 are considered vulnerable and should only be used if your partner does not support higher versions. Keep in mind that TLS v1.3 is not universally adopted, and might be refused if the destination server does not support it. |

#### Logging

<ProfileLogging />

#### Miscellaneous

<MiscConnector />

## Connector Settings

Once you configure the FTP Server profile settings, create and configure an individual FTP Server connector for each trading partner on the Flows page.

### Settings Tab

#### Configuration

<NameDescription />

#### サーバーステータス

<ServerStatus />

FTP プロファイルを作成済みかどうかに応じて、**FTP プロファイルを設定**または**FTP プロファイルを表示**リンクをクリックして新しいタブでプロファイルを開きます。

#### User Configuration

*Credentials for authenticating to the local FTP server.*

| Setting      | Description                                                                                                            |
| ------------ | ---------------------------------------------------------------------------------------------------------------------- |
| **User**     | The username credential for logging in to the local FTP server. This value is always the same as the **Connector Id**. |
| **Password** | The password credential associated with the **User**.                                                                  |

#### Permissions

*Settings related to the read and write permissions the configured client has for the Send and Receive folders.*

| Setting                           | Description                                                                                                                   |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| **Send Directory Permissions**    | Use the checkboxes to set read and write permissions for the *Send* directory. This directory is where files are downloaded.  |
| **Receive Directory Permissions** | Use the checkboxes to set read and write permissions for the *Receive* directory. This directory is where files are uploaded. |

### Advanced Tab

#### Local Folders

*Settings related to the folders where clients upload and download files.*

| Setting                     | Description                                                                                                                                              |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Input Folder (Send)**     | Files in the Send folder are available to be downloaded by clients.                                                                                      |
| **Output Folder (Receive)** | Files uploaded by the client are placed in the Receive folder. Files remain in the Receive folder or are passed along to the next connector in the flow. |

#### Other Settings

*Settings not included in the previous categories.*

| Setting                     | Description                                                                                                                                                                                                                             |
| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Home Directory**          | The configured server path where connected users start after logging in. For the valid locations and how the path is validated, see [Home Directory](#home-directory).                                                                  |
| **Allowed Files Filter**    | A glob pattern that determines which files are accepted by the FTP server. Overrides the **Allowed Files Filter** option on the FTP [Profile](../getting-started/administration/profiles) page.                                         |
| **Remove File After Send**  | Whether files in the *Send* folder should be removed after the client receives them.                                                                                                                                                    |
| **Temp Receive Extensions** | Files with a matching extension are not recorded in the Receive table and do not fire the **After Receive** event until they are renamed. Supply a comma-delimited list of file extensions.                                             |
| **Timeout**                 | The length of time (in seconds) the server waits for a connection response before throwing a timeout error.                                                                                                                             |
| **Save Subfolder**          | Check this to add a SubFolder header to received messages. This header represents the path relative to the Local Folders.                                                                                                               |
| **Local File Scheme**       | A scheme for assigning filenames to messages that are output by the connector. You can use macros in your filenames dynamically to include information such as identifiers and timestamps. For more information, see [Macros](#macros). |

#### Message

<Message />

#### Logging

<Logging />

#### Miscellaneous

<MiscConnector />

### Alerts Tab

<AlertsTab />

### SLAs Tab

<SlasTab />

## Establishing a Connection

Each FTP Server connector represents a single trading partner's connection parameters. The trading partner should connect to the FTP server using the server settings (such as port and TLS mode) from the [Profile](../getting-started/administration/profiles) page and the [user configuration](#user-configuration) settings in the dedicated FTP Server connector (User and Password).

Each trading partner has separate *Send* and *Receive* directories that are subfolders of the root. The partner should download files from the Send folder and upload files to the Receive folder. The client is not permitted to upload or download files from the root.

## Home Directory

The **Home Directory** setting controls which folder a client lands in when it logs in to an FTP Server connector. Configure it in the connector's **Advanced** tab, under **Other Settings**. Setting a home directory is useful when you migrate from other FTP software that let you configure a landing folder, or for automated systems that upload or download at whatever directory they land in without issuing navigation (`cd`) commands.

The field defaults to empty, but it also accepts a server path:

* **Empty (default):** The client lands at the virtual root (`/`).
* **Set to a path:** On successful login, the client's initial working directory is the specified path. A client that connects and immediately uploads, downloads, or lists files without changing directories operates inside the home directory.

The home directory must be a server path (starting with `/`) that resolves against the **Root Directory** defined on the connector's [Profile](#profile-configuration), and it must match a configured server location; you cannot set it to an arbitrary path that only exists on disk. For the FTP Server connector, the valid locations are:

* `/` (the virtual root): this is the default when the field is empty, so setting it explicitly has no additional effect
* `/Send`
* `/Receive`

The field normalizes your input, so `Receive`, `/Receive`, `\Receive`, and `/Receive/` are all treated as the same path. The value is validated when you save the connector: a path that does not match a configured server location is rejected with an error that names the invalid value.

<Note>The home directory only sets the initial landing directory at login. It is not a chroot or jail and does not restrict which folders a client can navigate to afterward; folder access is still governed by the [permission settings](#permissions).</Note>

## Macros

<MacrosTable />

### Examples

<MacrosExamples />

## Common Errors

### Error: Could not bind server socket: Permission denied.

**Cause**

This error can appear when you attempt to connect to an FTP server and the process hosting {siteNameShort} does not have sufficient privileges to establish a listener on the specified port.

<Note>In some cases (such as Linux environments and hosted instances running in an Amazon AMI), you cannot use ports below 1024.</Note>

**Resolution**

Choose a different port, or change the identity of the process hosting {siteNameShort} to one with permissions to bind to the port.

The Amazon AMI-hosted version of {siteNameShort} uses the Ubuntu operating system, so {companyName} recommends that you use an *Uncomplicated Firewall* (UFW) to manage port permission issues. For example, setting up FTP Server to run on port 8021 in {siteNameShort} and using UFW to forward port 21 to 8021 at the OS level looks like this:

```
ufw allow 21/tcp
ufw allow 8021/tcp
echo "
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport 21 -j REDIRECT --to-port 8021
COMMIT" >> /etc/ufw/before.rules
```

If your environment uses a different Linux operating system, {companyName} recommends that you bind to a port above the restricted range (for example, 8021 for FTP traffic) and use `iptables` to route incoming requests on the desired port to the allowed port:

`iptables -t nat -I PREROUTING -p tcp --dport 21 -j REDIRECT --to-port 8021`
