Загрузка и передача файлов одновременно с ограниченным хранилищем EC2 - PullRequest
0 голосов
/ 27 июня 2018

Я использую экземпляр EC2 в AWS для запуска сценария bash, который загружает файлы с сервера с помощью интерфейса командной строки, одновременно перемещая их в S3 с помощью интерфейса командной строки AWS (aws s3 mv). Тем не менее, я обычно исчерпываю память, прежде чем могу сделать это, потому что скорость загрузки выше, чем скорость передачи на S3. Файлы, которые загружаются ежедневно, обычно занимают сотни ГБ, и я не хочу увеличивать емкость хранилища, если это вообще возможно.

Интерфейс командной строки, который я использую для загрузок, работает непрерывно до успеха / неудачи, но выводит состояния на консоль (когда я запускаю ее из командной строки вместо .sh) по мере поступления. Я ищу способ теоретически запустить этот скрипт на основе приведенных спецификаций. Моей последней попыткой было использовать что-то длинное:

until (CLI_is_downloading) | grep -m 1 "download complete"; do aws s3 mv --recursive path/local_memory s3://path/s3; done

Но памяти не хватило, и загрузка не удалась задолго до того, как перемещение было закончено.

Некоторые возможные решения, о которых я думал, это как-то запустить CLI загрузки, пока я не достигну определенной точки памяти, доступной перед переключением на передачу, а затем чередую туда-сюда. Кроме того, я не слишком разбираюсь в AWS, поэтому не уверен, что это сработает, но могу ли я ограничить скорость загрузки в соответствии со скоростью передачи (например, регулирование сети)? Будем весьма благодарны за любые советы относительно практичности моих идей или другие предложения о том, как реализовать это.

РЕДАКТИРОВАТЬ: я снова проверил вывод на консоль, и кажется, что aws s3 mv --recursive перемещал только те файлы, которые были там, когда функция была сначала вызвана, а затем остановлена. Я полагаю, что если я буду вызывать его несколько раз, пока не получу сообщение "Файлы загружены" от другой команды CLI, это может сработать Я пока точно не знаю, как это сделать, поэтому предложения все равно будут оценены, но в противном случае это похоже на работу на завтра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...