S3ToSFTP: переместить несколько файлов из одного ключа S3 в путь SFTP - PullRequest
0 голосов
/ 09 июля 2020

Требование : переместить несколько файлов из одного ключа S3 в SFTP

Ниже приведена часть кода, мне удалось переместить один файл в расположение SFTP. Если расположение s3_key имеет более 1 примера файла, как показано ниже, мне нужно получить оба файла из / path / output в расположение SFTP

/path/output/abc.csv
/path/output/def.csv

Пробовал: Но оба файла не опубликованы

Tried passing s3_key as '/path/output/*.csv'

Код

with sftp.open(sftp_path + key_name, 'wb') as f:
     s3_client.download_fileobj(s3_bucket,s3_key, f)

1 Ответ

0 голосов
/ 11 июля 2020

См. Boto3 для загрузки всех файлов из S3 Bucket .

За исключением того, что вместо загрузки файлов в локальный файл:

client.download_file(bucket, k, dest_pathname)

... вы будете передавать их в SFTP:

with sftp.open(sftp_path + file.get('Key'), 'wb', 32768) as f:
    client.download_file(bucket, k, f)

Обратите внимание, что это простое изменение не обрабатывает «подпапки».

Для целей 32768 аргумент, см. Медленная запись в файл на SFTP-сервере, открытом с помощью метода pysftp "open" .

...