#amazon-web-services #amazon-s3 #aws-sdk-js
Вопрос:
В своем приложении я хочу предотвратить повторную загрузку файла в AWS S3. Я нашел полезный объект AWS JavaScript headObject
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#headObject-property
Но я хочу сравнить не только имя файла, но и его содержимое.
Спасибо!
Ответ №1:
Из Общих Заголовков ответов — Amazon Simple Storage Service:
Объекты, зашифрованные с помощью SSE-S3 или открытого текста, имеют ETAG, которые представляют собой MD5-дайджест их данных
Если ваш объект соответствует этим критериям, вы можете выполнить MD5 для локального файла и сравнить его с ETag, возвращенным headObject()
. Если они совпадают, то содержимое одно и то же.
Комментарии:
1. предоставляет ли aws какую-либо библиотеку для расчета MD5 файла?
2. Как насчет файла, загруженного с помощью многоступенчатой загрузки?
3. ETag не является MD5 для файлов, загруженных с помощью многосоставной копии. MD5-это стандартная операция. Функции/библиотеки доступны на всех языках программирования, это не относится к AWS.
4. Привет @John Rotenstein, Можем ли мы добиться этого без использования какой-либо библиотеки третьих частей? Предоставляет ли aws какой-либо способ сравнения файла с содержимым не только по ключу?
5. Нет, функция «сравнить» не предусмотрена.