|
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?fid=25&fpage=12&tid=1481343]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 264ms |
total: | 400ms |
0 / 0 |