Проблема при попытке FTP-файла> 2 ГБ с использованием ftplib - PullRequest
3 голосов
/ 29 марта 2019

У меня есть задание AWS Glue в Python2.7, которое пытается FTP-файлы из моей корзины s3 на клиентский сервер.Я использую встроенную библиотеку ftplib питонов для этого.Я могу ftp файлы, пока файл меньше 2 ГБ.Если размер файла превышает 2 ГБ, происходит сбой со следующей ошибкой

cat: точное-error-tmp-file.txt: такого файла или каталога нет

Я попытался изменить размер блокано это не помогает

def upload_from_s3_ftplib(s3_bucket, s3_file, ftp_host, ftp_username, 
                          ftp_password, ftp_directory):
"""Uploads the given file at the given S3 URL to the given FTP server 
    using the ftplib library"""

file_name = ntpath.basename(s3_file)
logger.info(" file name {}".format(file_name))

ftp = FTP(ftp_host)
logger.info("Connected")
ftp.login(user=ftp_username, passwd=ftp_password)
logger.info("Login Successful")

if ftp_directory.strip() <> '':
    ftp.cwd(ftp_directory)
    logger.info('Working directory changed to {}'.format(ftp_directory))
logger.info("Transfer file remote FTP {}".format(ftp_directory + "/" + s3_file))

s3 = boto3.resource('s3')
obj = s3.Object(s3_bucket, s3_file)
body = obj.get()['Body'].read()

ftp.storbinary('STOR {}'.format(file_name), BytesIO(body))
logger.info('File transmitted!!!')
ftp.quit()
...