2016-09-15 1 views
0

У меня есть около 50 ГБ данных для загрузки в ведро S3, но s3cmd ненадежно и очень медленно. синхронизация не работает из-за ошибки таймаута.Проблемы с s4cmd

Я переключился на s4cmd, он отлично работает, многопоточно и быстро.

 s4cmd dsync -r -t 1000 --ignore-empty-source forms/ s3://bucket/J/M/ 

Вышеприведенные загрузки набор файлов, а затем бросает ошибку - [Failure Thread] Не удается прочитать данные из источника:/Главная/убунту/путь к файлу Исходный файл содержит файл изображения, так там нет ничего плохого.

У s4cmd есть такие опции, как --retry для команды перезапуска, если она терпит неудачу, но это также не работает. Если вы столкнулись с решением для предотвращения этой ошибки, пожалуйста, поделитесь.

ответ

1

У меня это нормально работает. Я рад, что мои файлы загружаются очень быстро. Если вы все еще используете s3cmd, я настоятельно рекомендую вам перейти на s4cmd!

Загрузить и установить s4cmd. Найти s4cmd.py и заменить его следующим -

@log_calls 
    def read_file_chunk(self, source, pos, chunk): 
    '''Read local file cunks''' 
    data = None 
    with open(source, 'rb') as f: 
     f.seek(pos) 
     data = f.read(chunk) 
    if not f: 
     raise Failure('Unable to read data from source: %s' % source) 
    return StringIO(data) 

затем вызвать s4cmd.py в команду загрузки как

/pathtodir/s4cmd.py dsync -r forms/ s3://bucket/J/M/ 
Смежные вопросы