Сейчас на форуме: tyns777, zombi-vadim (+4 невидимых)

 eXeL@B —› Программирование —› Архивация и разархивация
Посл.ответ Сообщение

Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 15 января 2008 18:04
· Личное сообщение · #1

Привет всем!

Пишуна Delphi.
Необходио программно зархивировать, закачать по фтп на удалённую маину, а потом этот архив разархивировать. Ос уалённой машины-линукс.

Как это реализовать? Есть библиотеки для архивирования например в zip? Как лучше потом разархивировать на удалённой машине(есть одна своя идея, но хотелось бы услышать другие идеи)?

Заранее огромное спасибо за помощь!

-----
моя подпись!





Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 15 января 2008 18:24
· Личное сообщение · #2

locker_fx
Компонентов для дельфей помоему хватает! Достаточно в гугле поискать
www.componentace.com/zip_component_zip_delphi_zipforge.htm

На удаленом серваке unzip есть скорей всего Вот им и распакуй.

-----
Computer Security Laboratory




Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 15 января 2008 18:36
· Личное сообщение · #3

[HEX] пишет:
Компонентов для дельфей помоему хватает! Достаточно в гугле поискать
www.componentace.com/zip_component_zip_delphi_zipforge.htm

Спасибо, посмотрю.

[HEX] пишет:
На удаленом серваке unzip есть скорей всего Вот им и распакуй.

про unzip у меня идея было, но как его вызвать удалённо из проги на делфи?
Была идея сделать php скрипт, который выполнит unzip, но проблема, что не везде есть php. Можно как-то подругому удалённо выполнить unzip?

-----
моя подпись!





Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 15 января 2008 18:55 · Поправил: [HEX]
· Личное сообщение · #4

locker_fx
Самое лучшее наверное будет написать демона который будет болтаться на удаленном серваке и проверяет папку фтп. Если в папке будет новый файл, то распаковываем.

Есть вариант со скриптом на PHP/PERL/RUBY/PYTHON/C кому что по душе. Лежит себе скрипта в папке апача и ждет комманды. Обратился типа remote_server/script.php?file=test.zip он тебе и распаковал test.zip в папке фтпшника.

Можно демона написать слущающего портик и принимающий коммандочки на порту определенном, можно через xinetd.

Извратный вариант: дописать немного в исходниках FTP сервака что делать если залит ZIP файл.
Ну а если учитывать что во многих FTP серваках есть модуль проверки на вирусы, то можно это и заюзать. Отправлять файл на проверку и тем самым проверять файл ZIP это или не ZIP. И если ZIP то распаковывать.

Идей уйма нужно только мозг включить

-----
Computer Security Laboratory




Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 15 января 2008 19:05
· Личное сообщение · #5

locker_fx
С помощью ssh можно удаленно выполнять команды




Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 15 января 2008 19:28
· Личное сообщение · #6

tempread
согласен.
только вот как то не секьюрно это

Свой пароль от веб кошелька забил бы в программу статикой? Я бы не стал Вот тут тоже самое.
Это при условии что прога на общем доступе будет. если прога для личного использования, то все равно я бы не стал вбивать пароль в прогу.

-----
Computer Security Laboratory




Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 15 января 2008 19:31
· Личное сообщение · #7

[HEX] пишет:
Самое лучшее наверное будет написать демона который будет болтаться на удаленном серваке и проверяет папку фтп. Если в папке будет новый файл, то распаковываем.

Есть вариант со скриптом на PHP/PERL/RUBY/PYTHON/C кому что по душе. Лежит себе скрипта в папке апача и ждет комманды. Обратился типа remote_server/script.php?file=test.zip он тебе и распаковал test.zip в папке фтпшника.

Можно демона написать слущающего портик и принимающий коммандочки на порту определенном, можно через xinetd.

Извратный вариант: дописать немного в исходниках FTP сервака что делать если залит ZIP файл.
Ну а если учитывать что во многих FTP серваках есть модуль проверки на вирусы, то можно это и заюзать. Отправлять файл на проверку и тем самым проверять файл ZIP это или не ZIP. И если ZIP то распаковывать.

Идей уйма нужно только мозг включить

Таких идей у самого куча. А как быть если у тебя нет таких прав? Ясный пень еслб я на свой сервак, где я под рутом сижу, заливал бы это дело вопросов бы глупых не задавал.

Например нужно залить и разархивировать файл на народе. Меня интересует как сделать в таком случае.

tempread пишет:
С помощью ssh можно удаленно выполнять команды

Это нужно ещё к проге ssh припаивать , имхо не рационально.

-----
моя подпись!




Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 15 января 2008 19:33
· Личное сообщение · #8

[HEX] пишет:
Свой пароль от веб кошелька забил бы в программу статикой? Я бы не стал Вот тут тоже самое.
Это при условии что прога на общем доступе будет. если прога для личного использования, то все равно я бы не стал вбивать пароль в прогу.

Здесь не много не тот случай. В проге юзер вбивает адреса и пароли свои а прога в автоматическом режиме грузит ему файлы.

-----
моя подпись!




Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 15 января 2008 19:47
· Личное сообщение · #9

locker_fx пишет:
Это нужно ещё к проге ssh припаивать , имхо не рационально


Я имел ввиду всего лишь запуск с командной строки, поэтому для "припаивания" exec'а достаточно будет.
Только сомневаюсь что на народе есть ssh




Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 15 января 2008 22:57
· Личное сообщение · #10

locker_fx
Как задал вопрос так и ответили. Точнее исходные данные указывать нужно!
Если речь идет о народе.ру, то забудь про разархивацию =) шелла нет, скриптинга нет и в общем там ничего нет! Кроме как фтп и голого html. Так что на удаленной стороне ничего не распакуешь и задача уже не решаема. Если же сервак другой, а народ.ру был взят в качестве неудачного примера, то уточняйте что есть и какие права. От этой информации и будут вытекать идеи.

tempread
Ну если передавать логин с пассом в качестве вводимых параметров, то согласен можно и ссш прикрутить.

-----
Computer Security Laboratory




Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 16 января 2008 00:34
· Личное сообщение · #11

locker_fx пишет:
Необходио программно зархивировать, закачать по фтп на удалённую маину

В делфе есть компонент Indy для работы с ФТП.
Так же, в делфи есть юнит zLib в uses его прописывай и используй на здоровье.

-----
Я медленно снимаю с неё UPX... *FF_User*




Ранг: 49.7 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 16 января 2008 12:57
· Личное сообщение · #12

[HEX] прав, в любом случае распаковывать придётся на стороне сервера. Или загружать файлы по одному.



Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 16 января 2008 13:05
· Личное сообщение · #13

[HEX] пишет:
Как задал вопрос так и ответили. Точнее исходные данные указывать нужно!
Если речь идет о народе.ру, то забудь про разархивацию =) шелла нет, скриптинга нет и в общем там ничего нет! Кроме как фтп и голого html. Так что на удаленной стороне ничего не распакуешь и задача уже не решаема. Если же сервак другой, а народ.ру был взят в качестве неудачного примера, то уточняйте что есть и какие права. От этой информации и будут вытекать идеи.

насчёт народа я конечно загнул
Допустим есть виртуальный хостинг: есть ftp и ssh. Доступ к редактированию конфигов апача только для своих дирректорий через .htaccess

ViSoR пишет:
Или загружать файлы по одному.

Если их будет очень много, то это проблемно + экономия траффа.

tempread пишет:
Я имел ввиду всего лишь запуск с командной строки, поэтому для "припаивания" exec'а достаточно будет.

Как из своей проги удалённо его заюзать? В гугле смотрел...

-----
моя подпись!





Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 16 января 2008 14:55 · Поправил: [HEX]
· Личное сообщение · #14

locker_fx
Если есть Апач, то я не поверю что нет какого нибудь скриптового языка! ssh дают в нормальных хостинг тарифах в которых как минимум PHP точно есть.
Поэтому проще наверное будет заюзать скрипт который и будет заниматься распаковкой залитых файлов.

-----
Computer Security Laboratory




Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 16 января 2008 15:07 · Поправил: tempread
· Личное сообщение · #15

locker_fx
Берем клиент, что да как читаем - http://www.infocity.kiev.ua/hack/content/hack164.phtml http://www.infocity.kiev.ua/hack/content/hack164.phtml
формируем нужную командную строку, и, как описано тут http://www.google.ch/search?hl=uk&q=ssh+%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9+%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA+%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4&meta= выполняем команды



Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 16 января 2008 20:03
· Личное сообщение · #16

[HEX] пишет:
Если есть Апач, то я не поверю что нет какого нибудь скриптового языка! ssh дают в нормальных хостинг тарифах в которых как минимум PHP точно есть.
Поэтому проще наверное будет заюзать скрипт который и будет заниматься распаковкой залитых файлов.

Я с тобой 100% согласен, но лучше подстраховаться, как говориться надейся на лучшее, но готовься к худшему.

-----
моя подпись!




Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 16 января 2008 20:08
· Личное сообщение · #17

tempread пишет:
Берем клиент, что да как читаем - www.infocity.kiev.ua/hack/content/hack164.phtml
формируем нужную командную строку, и, как описано тут выполняем команды

Спасибо огромное за информацию. Но что-то мне подсказывает, что нужно последовать совету [HEX] и использовать скрипт.

-----
моя подпись!




Ранг: 9.5 (гость)
Активность: 0.010
Статус: Участник

Создано: 30 марта 2008 15:17
· Личное сообщение · #18

мне кажется что лучше всего использовать php-скрипт. А на фрихостах типа народ.ру и newmail.ru помоему есть форма для залития zip-файлов с последующей распаковкой, можно программно составлять запрос и отправлять архив.



Ранг: 9.5 (гость)
Активность: 0.010
Статус: Участник

Создано: 30 марта 2008 15:22
· Личное сообщение · #19

скрипт будет вроде этого, запускается как /script.php?file=myfile.zip

<?
if(!empty($_GET['file']))
{
$_GET['file'] = htmlspecialchars($_GET['file']);
system("unzip ".$_GET['file']);
echo "Done";
}
?>



 eXeL@B —› Программирование —› Архивация и разархивация
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати