Загрузите файлы на FTP-сервер с S3, используя Python - PullRequest
0 голосов
/ 01 августа 2020

Как загрузить файлы определенного шаблона c из местоположения S3 в местоположение FTP в Python с помощью ftplib и boto3 ??

Мне удалось загрузить файлы с локального компьютера, как показано ниже, но не из S3. Может ли кто-нибудь предложить способ достижения этого ??

# Upload Files 
from ftplib import FTP_TLS
import glob

host    = 'ftp.xyz.com'
uname   = 'user_name'
pwd     = 'My_Password'
sdir    = 'location'
sfrmt   = 'sample*'

ftps = FTP_TLS(host)
ftps.login(user = uname, passwd = pwd)

ftps.cwd(sdir) 

files =  glob.glob(sfrmt)
files
['sample1.csv', 'sample2.csv', 'sample3.csv']
for f in files:
    with open(f, 'r') as fu:
            ftps.storbinary('STOR ' + f, fu)

'226 Transfer complete.'
'226 Transfer complete.'
'226 Transfer complete.'

1 Ответ

0 голосов
/ 30 августа 2020
 
import os    
import s3fs
from ftplib import FTP_TLS

ftp = FTP_TLS("xxxxxxx.com")
ftp.login(user = "UserName", passwd ="Password")
ftp.cwd("Ftp Location")

s3_path = 's3://myBucket/Prefix/files'
fs = s3fs.S3FileSystem(anon=False) 
obj_lst = fs.ls(s3_path)
upload_lst = [i for i in obj_lst if "FileFormat" in i] # Upload files of this pattern

for file in upload_lst:
    with fs.open(file, 'r') as fu:
            ftp.storbinary('STOR ' + os.path.basename(file), fu)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...