Как сравнить два объекта S3 по содержанию «на стороне сервера» - PullRequest
0 голосов
/ 19 марта 2019

Допустим, у меня есть любые 2 объекта, которые хранятся в Amazon S3 в одной корзине (как ввод задачи). Мне нужно сравнить их по содержанию. Мало того, что их длина и контрольная сумма одинаковы, но буквально, что объекты идентичны байт за байтом. Единственный способ сделать это сейчас - это прочитать данные объектов в мое приложение на EC2 и сравнить их. Это, однако, не очень эффективно по времени и также стоит денег для передачи данных. Есть ли более эффективный способ сделать это? Могу ли я сделать это каким-то образом, используя серверный код на S3 (лямбда-код или подобный), который будет выполнять это сравнение без загрузки данных в EC2?

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

Также есть хэш MD5 как часть ETag для объектов S3, чего может быть или не быть достаточно в этом примере. Это также является частью службы инвентаризации S3, которую можно использовать, хотя это повлечет за собой дополнительные расходы. Очевидно, алгоритм MD5 не так надежен, как предыдущие комментарии, сделанные выше.

0 голосов
/ 19 марта 2019

S3 сделан для хранения, с некоторыми автоматическими задачами репликации и управления версиями. Это не делает обработку ваших данных. Сам S3 не сравнивается с точки зрения объектов, он видит только байты.

Даже если вы прочитаете данные в лямбда-выражении, это также будет стоить затрат на передачу данных.

Это зависит от того, что вы думаете об эффективной программе? экономически эффективным или экономичным по времени (без синхронной блокировки потока приложения.

  1. Ваша загрузка в s3 bucket может отправить уведомление о событии в aws lambda, которая затем прочитает ваши объекты и сравнит их, а затем может сохранить результаты (Dynamo DB или где-то еще). Если вам не нужно сравнивать в реальном времени, вы можете посмотреть запланированные события в aws lambda, которая запускается через определенный интервал.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...