Amazon S3 - Как рекурсивно переименовывать файлы? - PullRequest
0 голосов
/ 21 февраля 2020

Я пытаюсь получить свои файлы с помощью метода s3.getObject() в моем node.js бэкэнде.

Проблема в том, что при загрузке файлов в мое ведро я не смог заменить специальные символы, тире, и пробелы. Таким образом, любые файлы со значением Key (например, Key со значением 10th Anniversary Party (Part 1) 1-23-04 имеют конечную точку 10th+Anniversary+Party+(Part+1)+1-23-04).

Это становится проблематичным при попытке кодировать URI для получения. Я хотел бы заменить все черты, пробелы и специальные символы простым подчеркиванием. Я видел несколько возможных соглашений, использующих aws-cli, однако я не уверен, какая команда лучше всего подходит для этого. Любой совет будет принята с благодарностью.

1 Ответ

1 голос
/ 21 февраля 2020

Вы могли бы написать программу, которая:

  • Выводит содержимое корзины
  • Вызовы CopyObject() для копирования объекта в новый ключ
  • Вызовы DeleteObject() для удаления предыдущей копии

Или вы можете воспользоваться тем, что AWS CLI предлагает команду aws s3 mv, которая будет копировать + удалять для вас.

Я часто просто создаю электронную таблицу Excel с существующими именами и формулой для определения того, какое имя мне нужно. Затем я создаю третий столбец с:

aws s3 mv [Column 1] [Column 2]

Используйте Copy Down для строк, чтобы получить все команды mv. Затем скопируйте столбец команд, вставьте их в командную строку, и он переименует все объекты в Amazon S3! (Сначала проверьте 1-2 строки в случае ошибки в формуле.)

Это может показаться примитивным, но это очень быстрый способ внести изменения.

...