|  | 
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ Всем привет. Есть приложение (написано на delphi), которое загружает исполняемые файлы на сервер. На сервере стоит nginx с модулем upload.  Загружаю exe-шник на сервер, все проходит нормально, а когда скачиваю и пытаюсь запустить вываливается ошибка о совместимости 32 и 64 разрядности ОС. Хотя до всех этих манипуляций exe-шник нормально запускается. Пробовал загружать другие файлы c jpg и pdf всё нормально после скачивания они открываются, а вот png не хочет: говорит, что файл поврежден или размер слишком большой (хотя файл 43 кб) и не открывается ни в одном редакторе. Для exe использовал mime-type application/octet-stream и application/x-msdownload. Вот кусок кода, который заливает файл на сервер: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Что я делаю не так? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 04.05.2018, 10:32 |  | ||
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ Я бы начал с проверки места повреждения: при закачивании или при скачивании.  Проще всего сравнить контрольные суммы, на windows-клиенте запускать команду certutil -hashfile "file", на сервере после загрузки sha1sum "file". Если цифры не совпадают, то файл повреждается при передаче на сервер. И тогда надо смотреть чего это за модуль upload, в официальном nginx такого нет ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 04.05.2018, 17:20 |  | ||
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ МутагенИ тогда надо смотреть чего это за модуль upload, в официальном  nginx такого нет  Коммерческая версия -  достаточно официальна ? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 04.05.2018, 17:38 |  | ||
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ Sh2kerr, для начала сравните, чем отличается файл, который загружаете, от файла, который загрузился. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 04.05.2018, 18:18 |  | ||
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ Мутаген, спасибо за совет. Суммы не сошлись, точнее они выводятся как-будто в разных форматах. Считал sha1 и md5. Для SHA1 результат такой: Win: 91 40 b7 d4 90 e3 15 fe 4b 27 f8 8c a7 34 e9 2e 1d 78 13 cb linux: 40f792c5640fa4b12b6c800863fad04aa5cf244c REGP.exe Проблема в другом. Открыл exe-шник в блокноте а там вот такая ерунда: ----------050418140748703 Content-Disposition: form-data; name="sfile"; filename="REGP.exe" Content-Type: application/x-msdownload Content-Transfer-Encoding: binary MZP C MZP начинается сам exe-файл. Получается при загрузке http-заголовок записывается в exe-файл. Стёр этот заголовок до MZP, сохранил и всё заработало. Надо придумать как это исправить на nginx-e. Всем большое спасибо за ответы! ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 07.05.2018, 05:58 |  | ||
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ З.Ы. Оказывается nginx добавляет такую хрень во все файлы, просто pdf и jpg более устойчивы поэтому нормально открывались, а вот png и exe возмущаются. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 07.05.2018, 06:09 |  | ||
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ Sh2kerrНадо придумать как это исправить на nginx-e. Это не HTTP заголовок, это MIME-multipart. И исправлять это надо не на nginx-е, а в твоём кривом дельфийском приложении, у которого Context-type не соответствует реальному содержимому. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 07.05.2018, 12:54 |  | ||
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ Dimitry Sibiryakov, и какой же должен быть тип? Почему nginx запихивает всё это в файл? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 07.05.2018, 13:13 |  | ||
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ Sh2kerrи какой же должен быть тип? Правильный. Соответствующий ожиданиям upload модуля и RFC. Лично я бы вообще выкинул multipart дребедень и отсылал чистый octets-stream. Sh2kerrПочему nginx запихивает всё это в файл? Потом что твоё приложение командует ему "запихни в файл всё, что я пришлю". А присылает вот такую вот фигню. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 07.05.2018, 13:37 |  | ||
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ Dimitry Sibiryakov, убирал, всё равно пишет в файл эту фигню. Пробовал отправлять html-формой тоже самое. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 07.05.2018, 13:44 |  | ||
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ Так перестань программировать методом случайного тыка и начни читать документацию, включая  RFC. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 07.05.2018, 13:52 |  | ||
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ Dimitry Sibiryakov, при чем тогда "кривой дельфийский код"? я же написал, что с html-формой тоже самое. По вежлевее нельзя? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 08.05.2018, 04:35 |  | ||
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ Sh2kerrпри чем тогда "кривой дельфийский код"? я же написал, что с html-формой тоже самое. При том, что именно показанный дельфийский код отправляет данные. Зачем в нём использован multipart, которого upload, возможно, не понимает - вопрос из вопросов. Html-код ты показать "забыл". Вероятнее всего, там тоже копи-паст с гугля, не соответствующий требованиям. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 08.05.2018, 12:05 |  | ||
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ Sh2kerrПо вежлевее нельзя? "По вежлевее" это за тебя прочитать документацию по используемому тобой продукту, напрячь телепатер и угадать где ты облажался? Ок, вежливо отвечаю: ты пытаешься использовать промежуточные файлы nginx, вместо того, чтобы, как положено, передать их на backend, который их должен обработать и сложить в правильном формате в правильное место. Да, промежуточные файлы содержат оригинальные файлы с обёрткой транспортного протокола. Более того, там может присутствовать сжатие и кодирование bаse64 или даже quoted-printable. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 08.05.2018, 12:21 |  | ||
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ Basil A. SidorovМутагенИ тогда надо смотреть чего это за модуль upload, в официальном  nginx такого нет  Коммерческая версия -  достаточно официальна ? Модули из коммерческой версии в том же списке, например ngx_stream_keyval_module . А в вики лежать может что угодно ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 08.05.2018, 16:31 |  | ||
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ Мутаген...Поскипано нахрен ... Вы правда думаете, что NGINX, Inc. это такая левая компашка, которая чисто по кибесквоттерски зарегала похожий, но отдельный домен? Или, всё-таки, сумеете оценить разницу между NGINX и NGINX Plus ? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 08.05.2018, 16:57 |  | ||
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ [quot Sh2kerr] Код: pascal 1. Замена здесь слова Put на Post скорее всего исправит ситуацию ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 08.05.2018, 18:14 |  | ||
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ Basil A. SidorovВы правда думаете, что  NGINX, Inc.  это такая левая компашка, которая чисто по кибесквоттерски зарегала похожий, но отдельный домен? Или, всё-таки, сумеете оценить разницу между NGINX и NGINX Plus ? вы правда думаете что формулирование сомнительных утверждений в вызывающе-вопросительном тоне способствует продуктивной дискуссии? вы можете найти упоминание функционала upload module в описании NGINX Plus? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 08.05.2018, 18:22 |  | ||
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ Мутагенвы можете найти упоминание функционалаА вы можете осознать один простой факт: если коммерческая компания составила список модулей, разработанных сообществом для NGINX/NGINX Plus, то, наверное, "всякая фигня" в этом списке надолго не задержится? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 08.05.2018, 19:10 |  | ||
| 
nginx с модулем upload и повреждение файлов | |||
|---|---|---|---|
| #18+ В итоге проблема решилась так: нашел решение проще - использую WebDAV. Для него и компонент в delphi соответствующий есть, и пересобирать боевой сервер не придётся. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Видимо по невнимательности не написал о том, что мне надо залить файлы на nginx и потом с него раздавать. Бэкенда нет. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.05.2018, 07:00 |  | ||
|  | 

| start [/forum/topic.php?desktop=1&fid=25&tid=1481343]: | 0ms | 
| get settings: | 11ms | 
| get forum list: | 14ms | 
| check forum access: | 4ms | 
| check topic access: | 4ms | 
| track hit: | 46ms | 
| get topic data: | 13ms | 
| get forum data: | 3ms | 
| get page messages: | 59ms | 
| get tp. blocked users: | 2ms | 
| others: | 235ms | 
| total: | 391ms | 

| 0 / 0 | 
