Acompanhe o progresso do download do arquivo S3 usando boto3 e retornos de chamada
Estou tentando baixar um arquivo de texto do S3 usando o boto3.
Aqui está o que eu escrevi.
class ProgressPercentage(object):
def __init__(self, filename):
self._filename = filename
self._size = float(os.path.getsize(filename))
self._seen_so_far = 0
self._lock = threading.Lock()
def __call__(self, bytes_amount):
# To simplify we'll assume this is hooked up
# to a single filename.
with self._lock:
self._seen_so_far += bytes_amount
percentage = round((self._seen_so_far / self._size) * 100,2)
LoggingFile('{} is the file name. {} out of {} done. The percentage completed is {} %'.format(str(self._filename), str(self._seen_so_far), str(self._size),str(percentage)))
sys.stdout.flush()
e eu estou chamando isso usando
transfer.download_file(BUCKET_NAME,FILE_NAME,'{}{}'.format(LOCAL_PATH_TEMP , FILE_NAME),callback = ProgressPercentage(LOCAL_PATH_TEMP + FILE_NAME))
isso está me dando um erro de que o arquivo não está presente na pasta Aparentemente, quando eu já tenho um arquivo com esse nome na mesma pasta, ele funciona, mas quando estou baixando um arquivo novo, ele gera erros.
O que é a correção que preciso fazer?