

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用命令列介面 (CLI) 傳輸檔案
<a name="transfer-cli"></a>

以下各節詳細說明如何File Transfer使用命令列介面 (CLI) 上傳、下載及設定常用資料夾。

**Topics**
+ [上傳檔案](#upload-cli)
+ [設定常用資料夾](#hot-folders-file-transfer-cli)
+ [下載檔案](#download-cli)

## 上傳檔案
<a name="upload-cli"></a>

下列指令適用於命令列介面 (CLI)。使用這些命令，您可以從組態檔案中設定的對應 S3 儲存貯體下載檔案。您可以從電腦上的任何位置執行這些命令。不過，我們建議您從 root 執行這些指令。

File Transfer保留您提供的資料夾結構。這表示資料夾結構在到達 Amazon S3 後保持不變。但是，您不能給出File Transfer絕對路徑。這意味著文件路徑不能以`/`（正斜杠）開頭。

File Transfer上傳到所有 S3 儲存類別。如需有關儲存類別的詳細資訊，請參閱 [Amazon S3 儲存類別](https://aws.amazon.com/s3/storage-classes/)。

**注意**  
我們建議您停用本機電腦上的睡眠模式。如果您的電腦啟動睡眠模式，進行中的傳輸可能會中斷。在「**設定」** 中，切換「**停用睡眠」（僅限 macOS）**。

**使用 CLI 開始上傳**

1. 開啟終端機。

1. (建議) 瀏覽至包含您要上載之檔案和資料夾的資料夾。

1. 從電腦上的任何位置執行下列命令，將檔案從本機電腦上傳到 Amazon S3。

   ```
   filetransfer upload [transfer profile] [relative path]
   ```

   1. 將 *[傳輸設定檔]* 取代為您要使用的傳輸設定檔。

   1. 將 *[相對路徑]* 取代為您要上傳的檔案或目錄的路徑。

      1. 相對路徑不是以 `/` (正斜線) 開頭。範例：`Users/username/Desktop/folder1`

      1. 不要使用絕對路徑。絕對檔案路徑以 `/` (正斜線) 開頭。範例：`/Users/username/Desktop/folder1`

   1. 範例命令：`filetransfer upload [transfer profile name] /Users/username/Desktop/folder1`

File Transfer對您[File Transfer校驗和](checksums.md)的文件執行。總和檢查碼用於其他檔案完整性驗證，以便您偵測檔案是否意外修改。完成這些總和檢查碼之後，傳輸就會開始。如果您提供自己的*媒體雜湊清單* (*MHL*)，File Transfer可以驗證您的檔案是否符合 MHL 中定義的總和檢查碼。MHL 是一個 XML 文件，通常與原始相機素材一起提供。

### 旗標
<a name="upload-cli-flags"></a>

若要執行某些動作，您可以在指令的結尾加入旗標。它是可選的使用標誌。


| 旗標 | 描述 | 範例 | 
| --- | --- | --- | 
|  --help  |  列出可用的旗標和指令。  |  `filetransfer --help`  | 
|  -校驗和算法  |  定義File Transfer執行的總和檢查碼計算。支援的值：`md5``XXHash`、`XXHash64`、和`XXH3`。  |  `filetransfer upload [remote configuration] [relative path] –-checksum-algorithm xxhash64`  | 
|  --enable-metadata-filter  |  使用時，會自動File Transfer篩選系統中繼資料檔案。這些檔案包括`Thumbs.db``.DS_Store`、和開頭的檔案 `._.`  |  `filetransfer upload [remote configuration] [relative path] --enable-metadata-filter`  | 
|  -過濾器  |  根據格式篩選正在傳輸的檔案。篩選欄位接受有效的規則運算式。範例：`^.*\.(mov)$`僅傳輸結尾為的檔案`.mov`。您可以將篩選器新增至組態檔案，以執行特定動作。當您將篩選器新增至組態，而不是在特定指令上使用篩選器作為旗標時，會將該動作File Transfer套用至所有傳輸。  |  `filetransfer upload [remote configuration] [relative path] --filter "^.*\.(mov)$"` 這個命令只會上傳`.mov`格式的檔案。  | 
|  --force  |  無論篩選器或衝突如何，都強制執行傳輸。默認情況下，File Transfer不會傳輸先前傳輸的文件。 強制標誌使得File Transfer忽略任何過濾器或衝突。如果您不小心刪除了需要下載的文件，此功能非常有用。  |  `filetransfer upload [remote configuration] [relative path] --force`  | 
|  -最大年齡  |  僅傳輸在目前時間結束的時間範圍內建立或修改的檔案。如果沒有提供任何單位，最大年齡將以秒為單位。例如，`2d`將從最近兩天下載文件，並`3500`將上傳最近 3500 秒的文件。  |  `filetransfer upload [remote configuration] [relative path] --max-age “2d”` 上述命令只會從過去 2 天內將檔案上傳到 S3 儲存貯體。  | 
|  -反复计数  |  如果發生錯誤，File Transfer將嘗試傳輸檔案的次數與重試次數相同。  |  `filetransfer upload [remote configuration] [relative path] --retry-count 4`  | 
|  -塊大小  |  區塊大小 (以 MB 為單位) (預設為 25)  |  `filetransfer upload [remote configuration] [relative path] --chunk-size 50`  | 
|  -自動調整  |  允許工具決定最佳配置值以優化傳輸  |  `filetransfer upload [remote configuration] [relative path] --auto-tuning true`  | 
|  --max-active-checksums  |  作用中總和檢查碼的最大數目 (預設值為 1)。此旗標僅適用於上傳。  |  `filetransfer upload [remote configuration] [relative path] --max-active-checksums 5`  | 
|  --max-active-transfers  |  最大傳輸次數  |  `filetransfer upload [remote configuration] [relative path] --max-active-transfers 10`  | 
|  -前綴  |  上傳和下載的 S3 前綴路徑  |  `filetransfer upload [remote configuration] [relative path] --prefix my/s3/path`  | 
|  --profile  |  AWS 具名設定檔  |  `filetransfer upload [remote configuration] [relative path] --profile my_named_profile`  | 
|  -線程  |  每次上傳的執行緒數目 (預設為 10)  |  `filetransfer upload [remote configuration] [relative path] --threads 10`  | 
|  文件轉移配置目錄  |  取代預設`.filetransfer`資料夾。 該變量可以定義任何目錄來存儲配置文件和數據庫文件。如果`FILETRANSFER_CONFIG_DIR`未設定，則會使用預設值。`~/.filetransfer`檔案必須仍然命名為`configuration.yaml`或`configuration.yaml`、和`checksum-cache.db`。如果它們不存在，則會創建它們。  |  `FILETRANSFER_CONFIG_DIR=Desktop/config1 filetransfer upload [remote configuration] [relative path]`  | 

## 設定常用資料夾
<a name="hot-folders-file-transfer-cli"></a>

**使用 CLI 設定上傳常用資料夾。**

1. 使用電腦上的任何文字編輯軟體開啟組態檔案。

   1. 視窗：瀏覽至電腦上的資`User/<your username>`料夾。開啟資`.filetransfer`料夾並使用文字編輯器開啟`filetransfer.yaml`檔案。

   1. macOS：輸入**Cmd\$1Shift\$1G**。然後輸入**\$1/.filetransfer**。使用文字編輯器開啟 `filetransfer.yaml` 檔案。

   1. Linux：使用任何文字編輯器開啟`filetransfer.yaml`檔案。檔案位於中`~/.filetransfer/configuration.yaml`。

1. 使用下列欄位建立新`hot_folder`區段

   ```
   hot folders:
                 - enabled: true
                 local_source_folder: /Users/user/myhotfolder
                 name: my_hot_folder
                 remote_configurations:
                   - remote_configuration_name: example_configuration
                     s3_destination_folder: my/s3/prefix
   ```

1. `enabled`常用資料夾只有在設定為 true 時才會處於作用中狀態。

1. 將*本地資料*夾取代為您要監視的資料夾位置。File Transfer檔案路徑必須包含完整路徑：`C:\path\to\upload-hot-folder`(Windows) 或 `/path/to/upload-hot-folder` (Linux&macOS)。

1. 下`remote_configurations`：

   1. 將*遠端組態名稱*取代為您要使用的遠端組態名稱。您可以在下面找到您的遠端配置`protocols.s3.transfer_profiles`。

   1. (選擇性) 將 *s3\$1destination\$1資料夾*取代為您要上傳檔案的S3 目的地資料夾。 File Transfer將在 Amazon S3 中創建該文件夾，如果它不存在。如果未設定值，檔案將會放置在值區的根目錄中。

   1. (選擇性) 您可以在此新增任意數量的遠端組態項目，而常用資料夾就會使用每個遠端組態開始上傳。這可讓您設定將上傳至多個值區的單一常用資料夾。

1. 下列範例是具有多個常用資料夾的上傳常用資料夾組態。在此範例中，有兩個常用資料夾。

   1. 第一個常用資料夾設定為監視資`Media/drive`料夾。將檔案新增至此資料夾時，會啟動兩次上傳，一個使用`example1`遠端設定，另一個使用`example2`遠端設定。每次上傳將使用其各自的`s3_destination_folder`。

   1. 第二個常用資料夾設定為監視資`/Users/user1/myhotfolder`料夾。將檔案新增至此資料夾時，會使用`another_configuration`遠端設定啟動單一上傳作業。所有文件都將上傳到 Amazon S3 中的文件`example_folder`夾。

   ```
   hot folders: 
           - enabled: true
             local_source_folder: /Media/drive
             name: my_hot_folder
             remote_configurations:
                   - remote_configuration_name: example1
                     s3_destination_folder: my/s3/folder
                   - remote_configuration_name: example2
                     s3_destination_folder: second/folder
           - enabled: true
             local_source_folder: /Users/user1/my_hot_folder
             name: another_hot_folder
             remote_configurations:
                   - remote_configuration_name: another_configuration
                     s3_destination_folder: example/folder
   ```

1. 儲存組態檔案。
**注意**  
當您啟動協助程式時，或新增/更新常用資料夾時，會啟動整個資料夾的自動強制上傳。如果您不喜歡這種行為，您可以開啟 GUI 並取消工作。

## 下載檔案
<a name="download-cli"></a>

使用下列命令，您可以從組態檔案中設定的對應 S3 儲存貯體下載檔案。您可以從電腦上的任何位置執行這些命令。我們建議您從 root 執行這些指令。

File Transfer無法直接從深層存檔或 Glacier 儲存類別下載。這是因為它們存儲在不同的系統中。這些類型的物件需要擷取檔案的不同方法。如需有關從不同系統擷取物件的詳細資訊，請參閱[還原封存物](https://docs.aws.amazon.com/AmazonS3/latest/userguide/restoring-objects.html)件。如需有關儲存類別的詳細資訊，請參閱 [Amazon S3 儲存類別](https://aws.amazon.com/s3/storage-classes/)。

**注意**  
我們建議您停用本機電腦上的睡眠模式。如果您的電腦啟動睡眠模式，進行中的傳輸可能會中斷。在「**設定」** 中，切換「**停用睡眠」（僅限 macOS）**。

**使用 CLI 開始下載**

1. 開啟終端機。

1. (建議) 瀏覽至您要下載檔案的目標資料夾。

1. 從電腦上的任何位置執行下列命令，將檔案從 Amazon S3 下載到電腦上。

   ```
   filetransfer download [transfer profile]
                     [relative path]
   ```

   1. 將 *[傳輸設定檔]* 取代為您要使用的傳輸設定檔。

   1. 將 *[相對路徑]* 替換為您要下載文件的目標路徑。

      1. 相對路徑不是以 `/` (正斜線) 開頭。範例：`Users/username/Desktop/folder1`

      1. 不要使用絕對路徑。絕對檔案路徑以 `/` (正斜線) 開頭。範例：`/Users/username/Desktop/folder1`

   1. 範例命令：`filetransfer download [transfer profile name] /Users/username/Desktop/folder1`

File Transfer檢查本機File Transfer資料庫，以確認您選取的檔案是否已下載。

### 旗標
<a name="download-cli-flags"></a>

您可以在指令結尾加入旗標，以執行某些動作。它是可選的使用標誌。


| 旗標 | 描述 | 範例 | 
| --- | --- | --- | 
|  --help  |  列出可用的旗標和指令。  |  `filetransfer --help`  | 
|  -校驗和算法  |  定義File Transfer執行的總和檢查碼計算。支援的值：`md5``XXHash`、`XXHash64`、和`XXH3`。  |  `filetransfer download [remote configuration] [relative path] –-checksum-algorithm xxhash64`  | 
|  --enable-metadata-filter  |  使用時，會自動File Transfer篩選系統中繼資料檔案。這些檔案包括`Thumbs.db``.DS_Store`、和開頭的檔案 `._.`  |  `filetransfer download [remote configuration] [relative path] --enable-metadata-filter`  | 
|  -過濾器  |  根據格式篩選正在傳輸的檔案。篩選欄位接受有效的規則運算式。範例：`^.*\.(mov)$`僅傳輸結尾為的檔案`.mov`。您可以將篩選器新增至組態檔案，以執行特定動作。當您將篩選器新增至組態，而不是在特定指令上使用篩選器作為旗標時，會將該動作File Transfer套用至所有傳輸。  |  `filetransfer download [remote configuration] [relative path] --filter "^.*\.(mov)$"` 這個命令只會下載`.mov`格式的檔案。  | 
|  --force  |  無論篩選器或衝突如何，都強制執行傳輸。默認情況下，File Transfer不會傳輸先前傳輸的文件。 強制標誌使得File Transfer忽略任何過濾器或衝突。如果您不小心刪除了需要下載的文件，此功能非常有用。  |  `filetransfer download [remote configuration] [relative path] --force`  | 
|  -最大年齡  |  僅傳輸在目前時間結束的時間範圍內建立或修改的檔案。如果沒有提供任何單位，最大年齡將以秒為單位。例如，`2d`將從最近兩天下載文件，並`3500`將上傳最近 3500 秒的文件。  |  `filetransfer download [remote configuration] [relative path] --max-age “2d”` 上述命令只會將最近 2 天的檔案下載到 S3 儲存貯體。  | 
|  -反复计数  |  如果發生錯誤，File Transfer將嘗試傳輸檔案的次數與重試次數相同。  |  `filetransfer download [remote configuration] [relative path] --retry-count 4`  | 
|  -塊大小  |  區塊大小 (以 MB 為單位) (預設為 25)  |  `filetransfer download [remote configuration] [relative path] --chunk-size 50`  | 
|  -自動調整  |  允許工具決定最佳配置值以優化傳輸  |  `filetransfer download [remote configuration] [relative path] --auto-tuning true`  | 
|  --max-active-checksums  |  使用中總和檢查碼的最大數目 (預設值為 1)  |  `filetransfer download [remote configuration] [relative path] --max-active-checksums 5`  | 
|  --max-active-transfers  |  最大傳輸次數  |  `filetransfer download [remote configuration] [relative path] --max-active-transfers 10`  | 
|  -前綴  |  上傳和下載的 S3 前綴路徑  |  `filetransfer download [remote configuration] [relative path] --prefix my/s3/path`  | 
|  --profile  |  AWS 具名設定檔  |  `filetransfer download [remote configuration] [relative path] --profile my_named_profile`  | 
|  -線程  |  每次下載的執行緒數目 (預設為 10)  |  `filetransfer download [remote configuration] [relative path] --threads 10`  | 
|  文件轉移配置目錄  |  取代預設`.filetransfer`資料夾。 該變量可以定義任何目錄來存儲配置文件和數據庫文件。如果`FILETRANSFER_CONFIG_DIR`未設定，則會使用預設值。`~/.filetransfer`檔案必須仍然命名為`configuration.yaml`或`configuration.yaml`、和`checksum-cache.db`。如果它們不存在，則會創建它們。  |  `FILETRANSFER_CONFIG_DIR=Desktop/config1 filetransfer download [remote configuration] [relative path]`  | 