

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 列出远程目录的内容
<a name="sftp-connector-list-dir"></a>

在从远程 SFTP 服务器检索文件之前，可以检索远程 SFTP 服务器上目录的内容。为此，你可以使用 [https://docs.aws.amazon.com/transfer/latest/APIReference/API_StartDirectoryListing.html](https://docs.aws.amazon.com/transfer/latest/APIReference/API_StartDirectoryListing.html)API 操作。

以下示例列出了远程 SFTP 服务器上该`home`文件夹的内容，该内容是在连接器的配置中指定的。结果将放入 Amazon S3 位置`/amzn-s3-demo-bucket/connector-files`和名为的文件中`c-AAAA1111BBBB2222C-6666abcd-11aa-22bb-cc33-0000aaaa3333.json`。

```
aws transfer start-directory-listing  \
   --connector-id c-AAAA1111BBBB2222C  \ 
   --output-directory-path /amzn-s3-demo-bucket/example/connector-files  \
   --remote-directory-path /home
```

此 AWS CLI 命令返回列表 ID 和包含结果的文件的名称。

```
{
    "ListingId": "6666abcd-11aa-22bb-cc33-0000aaaa3333",
    "OutputFileName": "c-AAAA1111BBBB2222C-6666abcd-11aa-22bb-cc33-0000aaaa3333.json"
}
```

**注意**  
输出文件的命名约定为`connector-ID-listing-ID.json`。

JSON 文件包含以下信息：
+ `filePath`：远程文件的完整路径，相对于远程服务器上 SFTP 连接器的列出请求目录。
+ `modifiedTimestamp`：上次修改文件的时间，以秒为单位，采用协调世界时 (UTC) 格式。该字段是可选的。如果远程文件属性不包含时间戳，则文件列表中将省略该时间戳。
+ `size`: 文件的大小，以字节为单位。该字段是可选的。如果远程文件属性不包含文件大小，则会将其从文件列表中省略。
+ `path`：远程目录的完整路径，相对于远程服务器上的 SFTP 连接器的列出请求目录。
+ `truncated`: 一个标志，指示列表输出是否包含远程目录中包含的所有项目。如果您的`truncated`输出值为 true，则可以增加可选`max-items`输入属性中提供的值，以便能够列出更多项目（允许的最大列表大小为 10,000 个）。

以下是输出文件 (`c-AAAA1111BBBB2222C-6666abcd-11aa-22bb-cc33-0000aaaa3333.json`) 内容的示例，其中远程目录包含两个文件和两个子目录（路径）。

```
{
    "files": [
        {
            "filePath": "/home/what.txt",
            "modifiedTimestamp": "2024-01-30T20:34:54Z",
            "size" : 2323
        },
        {
            "filePath": "/home/how.pgp",
            "modifiedTimestamp": "2024-01-30T20:34:54Z",
            "size" : 4691
        }
    ],
    "paths": [
        {
            "path": "/home/magic"
        },
        {
            "path": "/home/aws"
        },
    ],
    "truncated": "false"
}
```