Сопоставление метаданных аудио объекта корзины S3 с DynamoDB - PullRequest
0 голосов
/ 06 августа 2020

Допустим, я импортировал большое количество аудиофайлов в S3. Мне нужно будет сопоставить метаданные моих аудиофайлов (включая исполнителя, название трека, продолжительность, дату выпуска и т. Д.) С таблицей DynamoDB, чтобы запросить их с помощью GraphQL API в приложении реакции. Однако я пока не могу понять, как извлечь эти метаданные для отображения в DynamoDB.

В руководстве разработчика DynamoDB упоминается (стр.914), что идентификатор объекта S3 может храниться в Элемент DynamoDB.

Также упоминается, что поддержка метаданных объекта S3 может обеспечивать обратную ссылку на родительский элемент в DynamoDB (путем сохранения значения первичного ключа элемента таблицы в виде метаданных S3).

Однако этот процесс не совсем детализирован; Самый близкий подход, который я нашел, принадлежит Дж. Бесуику, который использует лямбда-функцию для загрузки большого количества данных из файла JSON, хранящегося в корзине S3.

(https://www.youtube.com/watch?v=f0sE_dNrimU&feature=emb_logo ).

1 Ответ

0 голосов
/ 06 августа 2020

Метаданные объекта S3 чем-то отличаются от метаданных аудио.

Подумайте так: все, что вы помещаете на S3, является объектом. Этот объект имеет ключ (имя) и некоторые метаданные, прикрепленные к нему по умолчанию S3, а также другие метаданные, которые вы можете прикрепить к нему. Все эти вещи объясняются здесь .

Метаданные аудиофайлов - это другое дело. Они находятся внутри файла (допустим, это mp3-файл). Чтобы получить доступ к этим данным, вам необходимо прочитать файл с помощью api, который знает формат файла и способы извлечения данных.

Когда вы загружаете файл в s3, он не извлекает никаких данных и не прикрепляет их к метаданные вашего объекта (исполнитель, номер трека и т. д. c из файлов mp3). Вам нужно сделать это самостоятельно.

Предлагаемое решение: для каждого файла, который вы загружаете в s3, загрузка запускает лямбда-функцию, которая знает, как извлечь метаданные аудио из файла. Затем он извлечет эти метаданные и сохранит их в DynamoDB вместе с именем объекта в s3. После этого вы можете запросить свою таблицу с поиском, который вы запланировали, и после того, как нашли запись, укажите на правильный объект в s3.

В этом предложении вы также можете запустить его для всех объектов, уже существующих в s3 ведро, чтобы не требовать новой загрузки.

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