startDirectoryListing method
Retrieves a list of the contents of a directory from a remote SFTP server.
You specify the connector ID, the output path, and the remote directory
path. You can also specify the optional MaxItems value to
control the maximum number of items that are listed from the remote
directory. This API returns a list of all files and directories in the
remote directory (up to the maximum value), but does not return files or
folders in sub-directories. That is, it only returns a list of files and
directories one-level deep.
After you receive the listing file, you can provide the files that you
want to transfer to the RetrieveFilePaths parameter of the
StartFileTransfer API call.
The naming convention for the output file is
connector-ID-listing-ID.json. The output file
contains the following information:
-
filePath: the complete path of a remote file, relative to the directory of the listing request for your SFTP connector on the remote server. -
modifiedTimestamp: the last time the file was modified, in UTC time format. This field is optional. If the remote file attributes don't contain a timestamp, it is omitted from the file listing. -
size: the size of the file, in bytes. This field is optional. If the remote file attributes don't contain a file size, it is omitted from the file listing. -
path: the complete path of a remote directory, relative to the directory of the listing request for your SFTP connector on the remote server. -
truncated: a flag indicating whether the list output contains all of the items contained in the remote directory or not. If yourTruncatedoutput value is true, you can increase the value provided in the optionalmax-itemsinput attribute to be able to list more items (up to the maximum allowed list size of 200,000 items).
May throw InternalServiceError.
May throw InvalidRequestException.
May throw ResourceNotFoundException.
May throw ServiceUnavailableException.
May throw ThrottlingException.
Parameter connectorId :
The unique identifier for the connector.
Parameter outputDirectoryPath :
Specifies the path (bucket and prefix) in Amazon S3 storage to store the
results of the directory listing.
Parameter remoteDirectoryPath :
Specifies the directory on the remote SFTP server for which you want to
list its contents.
Parameter maxItems :
An optional parameter where you can specify the maximum number of
file/directory names to retrieve. The default value is 1,000.
Implementation
Future<StartDirectoryListingResponse> startDirectoryListing({
required String connectorId,
required String outputDirectoryPath,
required String remoteDirectoryPath,
int? maxItems,
}) async {
_s.validateNumRange(
'maxItems',
maxItems,
1,
1152921504606846976,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'TransferService.StartDirectoryListing'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'ConnectorId': connectorId,
'OutputDirectoryPath': outputDirectoryPath,
'RemoteDirectoryPath': remoteDirectoryPath,
if (maxItems != null) 'MaxItems': maxItems,
},
);
return StartDirectoryListingResponse.fromJson(jsonResponse.body);
}