Мне нужно обработать некоторые файлы в корзине S3 с помощью куста. Проблема в том, что кусту явно не нравится использовать сегменты в качестве папок, поэтому я решил создать папку в другом сегменте и скопировать туда файлы с помощью s3cmd.

Это моя команда:

s3cmd -v cp s3://main.bucket/\* s3://temp.bucket/input/

Затем s3cmd незамедлительно заявляет, что у меня есть X-файлы для передачи (обычно порядка 5k++), а затем после копирования одного файла выдает мне следующую ошибку:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    An unexpected error has occurred.
  Please report the following lines to:
   s3tools-bugs@lists.sourceforge.net
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Problem: KeyError: 'dest_name'
S3cmd:   1.0.1

Traceback (most recent call last):
  File "/usr/local/bin/s3cmd", line 2006, in <module>
    main()
  File "/usr/local/bin/s3cmd", line 1950, in main
    cmd_func(args)
  File "/usr/local/bin/s3cmd", line 614, in cmd_cp
    subcmd_cp_mv(args, s3.object_copy, "copy", "File %(src)s copied to %(dst)s")
  File "/usr/local/bin/s3cmd", line 604, in subcmd_cp_mv
    dst_uri = S3Uri(item['dest_name'])
KeyError: 'dest_name'

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    An unexpected error has occurred.
    Please report the above lines to:
   s3tools-bugs@lists.sourceforge.net
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Теперь это просто отстой.

Думая, что проблема заключается в передаче bucket-bucket, я решил создать папку внутри main.bucket и просто скопировать все туда, не обращая внимания, если папка, в которую все копируются, тоже копируется, вызывая цикл или еще много чего. потому что в тот момент я был в конце моего остроумия.

Новая команда выглядит следующим образом:

s3cmd -v cp s3://main.bucket/\* s3://main.bucket/111a/

Опять же, он скопировал только один файл и выдал мне ту же ошибку.

Что бы это могло значить? Как это исправить?

Благодарю.

PS Если все остальное терпит неудачу, я думаю, что я мог бы сделать это через графический интерфейс AWS, но ручная проверка каждого флажка - это боль. Насколько мне известно, если вы прокрутите вниз достаточно долго, он тупо забудет файлы, которые вы проверяли выше, заставляя вас делать это в темпе улитки.

Если есть способ выбрать их все сразу и скопировать и вставить их в новый каталог, это было бы здорово.

1 ответ1

1

Вы используете очень старую версию s3cmd. Я считаю, что эта ошибка была исправлена в последующие годы. Пожалуйста, попробуйте еще раз с основной веткой github.com/s3tools/s3cmd. На сегодняшний день 1.5.0-rc1 является самой последней версией.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .