Используя javascript и AWS Amplify, я пытаюсь прикрепить некоторые пользовательские метаданные к файлам, которые загружаются в мое хранилище s3.Большинство доступных параметров не описаны в документации, но после изучения исходного кода я обнаружил, что добавление, например, {metadata: { 'your-custom-key-1': 'foo', 'your-custom-key-2': 'bar' }
в качестве параметра параметров в Storage.put () автоматически создаст пользовательские метаданные в вашем файле, которыеавтоматически префикс ваших пользовательских ключей с 'x-amz-meta-'.Таким образом, в приведенном выше случае у вас есть 'x-amz-your-custom-key-1': 'foo', 'x-amz-your-custom-key-2': 'bar'
в качестве фактических метаданных, прикрепленных и сохраненных в этих конкретных файлах.
Проблема в том, насколько я могу судить, я не вижу никакого способа получить эти метаданныеиспользуя усиление.Я предполагаю, что мне придется копать слой глубже в основной класс s3, чтобы получить эту информацию.Чтобы сделать вещи еще более запутанными ... Я обнаружил, что с помощью ampify, если я вызываю Storage.get () со скрытой опцией {download: true} в качестве параметра option, я получаю ответ, который на самом деле имеет ключ метаданных.Тем не менее, он всегда пуст, даже если у меня есть собственные метаданные, прикрепленные к моему файлу.Я предполагаю, что эта функция либо была изменена, либо является неполной?Заглядывая в базовый класс s3, я нашел headObject
, но мне не ясно, дадут ли мне мои пользовательские метаданные или просто значения по умолчанию.Моя конечная цель - перечислить все связанные метаданные со всеми файлами в моем хранилище, когда я вызываю Storage.list ().Спасибо за любой совет