Пакетные файлы вместе на Amazon S3 - PullRequest
0 голосов
/ 30 января 2020

У меня есть базовый файл, который нужно упаковать в другой файл. При каждом запросе мы добавляем / объединяем файл лицензии с исходным базовым файлом и даем клиенту URL-адрес для вновь созданного упакованного файла (базовый файл + лицензия). В настоящее время мы загружаем файл из s3 в экземпляр ec2, объединяем и затем загружаем его обратно в корзину s3. Есть ли способ управлять тем же?

PS Базовый файл имеет большие размеры, а файл лицензии меньше по размеру.

Постановка проблемы: Нам нужно создать пакет из коллекции продуктов, который будет предоставлен пользователю в виде одного файла. В настоящее время мы загружаем все продукты из s3 в наш экземпляр ec2, добавляем файл лицензии, упаковываем их в новый файл пакета и загружаем «упакованный» файл обратно в s3 и делимся ссылкой с клиентом. То, что я хочу или, по крайней мере, намереваюсь сделать, это вместо того, чтобы загружать отдельные файлы и затем загружать большой файл обратно, что если я могу просто загрузить файл лицензии и дать ссылку на все отдельные файлы, чтобы упакованные файлы создавались и сохранялись на s3. сохраняет данные от S3

туда-сюда

Ответы [ 2 ]

1 голос
/ 30 января 2020

упакованные файлы создаются и сохраняются в s3

Это не произойдет где-то само по себе , вам нужно выполнить несколько логик c, а S3 - это хранилище объектов, S3 не имеет такой возможности.

Подумайте, что на самом деле является проблемой, которую вы хотите решить? Что вам нужно постоянно использовать вычислительный ресурс EC2?

В этом случае я вижу еще несколько вариантов:

  1. Использование AWS Лямбда - что не является действительно предназначен для запуска в течение длительного времени или хранения каких-либо данных. (Я считаю, что есть ограничение до 15 минут). Однако вы можете перепаковать и добавить файл в архив в потоковом режиме (ничего не сохраняя локально). Хотя - этот подход предполагает, что вы закончите sh свою задачу за ограниченное время

  2. AWS Пакетная обработка - если переупаковка или обработка занимает больше времени или требует больше ресурсов (хранилище), Вы можете создать пакетное задание. AWS Пакетный режим создаст вычислительные ресурсы, обработает заданную работу и очистит ее после завершения.

1 голос
/ 30 января 2020

Amazon S3 не имеет возможности «упаковывать» файлы. Файлы должны быть созданы где-то и загружены в Amazon S3.

Один из способов сделать это - использовать AWS лямбда-функцию, но размер файлов слишком велик большой размер для хранилища, доступного в Lambda.

Поэтому вам необходимо выполнить эти действия на экземпляре Amazon EC2 или в контейнере (например, Amazon ECS).

Конечно, проще можно было бы предоставить ДВА файла клиенту - один с приложением, другой с файлом лицензии.

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