Проблемы с сравнением хэша в OSX - PullRequest
0 голосов
/ 09 мая 2019

У нас есть собственное внутреннее решение для исправления, использующее Node JS с нашим клиентским приложением, являющимся Electron.

Наш Patcher собирает список изменений изменений пути к файлу между версиями и соединяет их с сгенерированной суммой Sha всохранить в формате JSON.Исходные файлы хранятся на локальном сервере в сети, к которому имеют доступ все машины сборки.В настоящее время наш сборочный компьютер Windows собирает пути к файлам и хэши Sha для сборок Windows и OSX, поскольку он работает намного быстрее нашего сборочного компьютера OSX, а затем передает информацию JSON на сборочный компьютер OSX для завершения процесса.

При загрузке файлов из OSX в AWS с использованием следующих команд с использованием следующих библиотек мы видим, что полученный SHA, сгенерированный после последующей загрузки, больше не соответствует исходному файлу, над которым выполнялись операции.Кто-нибудь знает, что здесь происходит или какие команды портят?Мы видим это только в OSX, тогда как точно такой же код запускается в Windows без проблем.

Метод генерации Sha, который мы используем в Patcher и Client, взят из собственной криптографической библиотеки Node.https://nodejs.org/api/crypto.html

Наша загрузка Patcher на S3 использует функцию uploadFile: https://github.com/andrewrk/node-s3-client

В то время, как загрузка клиента использует внутренний загрузчик Electron: https://electronjs.org/docs/api/download-item

Для клиентаПеремещение файла на стороне, мы используем: https://github.com/jprichardson/node-fs-extra Таким образом:

fs.copySync(cpFROM, cpTO, { overwrite: true, preserveTimestamps: true })
fs.removeSync(cpFROM);

Я пытался использовать операции перемещения, но это привело к сбоям в OSX.

Спасибо.

...