Вверх ↑
Этот топик читают: Гость
Ответов: 1268
Рейтинг: 28
#16: 2014-05-18 15:20:48 ЛС | профиль | цитата
nesco писал(а):
Где пруф на описание этой команды


ммм не судьба заяндексить?

http://ru.wikipedia.org/wiki/Chmod
карма: 2

0
Разработчик
Ответов: 25681
Рейтинг: 2087
#17: 2014-05-18 16:01:31 ЛС | профиль | цитата
Rysik писал(а):
ммм не судьба заяндексить?

И каким боком CHMOD привязать к FTP сервису
И под командами я подразумевал FTP команды, тк именно FTP мы тут и рассматриваем, а не абы че.
Те вопрос заключается в том -- как с помощью документированных или недокументированных команд FTP управлять доступам к файлам или папкам на FTP-сервере Вот я и просил пруф на рассмотрение решения данного вопроса
карма: 20

0
Ответов: 1268
Рейтинг: 28
#18: 2014-05-18 17:49:57 ЛС | профиль | цитата
nesco писал(а):
И каким боком CHMOD привязать к FTP сервису
И под командами я подразумевал FTP команды, тк именно FTP мы тут и рассматриваем, а не абы че.
Те вопрос заключается в том -- как с помощью документированных или недокументированных команд FTP управлять доступам к файлам или папкам на FTP-сервере Вот я и просил пруф на рассмотрение решения данного вопроса


ну, а это никак не поможет?

http://www.example-code.com/delphi/ftp_chmod.asp
карма: 2

0
Разработчик
Ответов: 25681
Рейтинг: 2087
#19: 2014-05-18 18:33:59 ЛС | профиль | цитата
Rysik писал(а):
ну, а это никак не поможет?

Это требует установки Chilkat ActiveX, к тому же, она еще и коммерческая версия. И таскать с собой всякие примочки не каждый согласится. Поэтому сторонние ActiveX у нас тут не сильно прижились. Тч в качестве компонентной базы это предложение реализовано не будет
карма: 20

0
Ответов: 1268
Рейтинг: 28
#20: 2014-05-18 21:40:03 ЛС | профиль | цитата
nesco писал(а):
Это требует установки Chilkat ActiveX, к тому же, она еще и коммерческая версия. И таскать с собой всякие примочки не каждый согласится. Поэтому сторонние ActiveX у нас тут не сильно прижились. Тч в качестве компонентной базы это предложение реализовано не будет


но согласись ftp без chmod это как бы не очень хорошо

может стоит попробовать как небуть выкрутиться посредством портирования php ?, вместо дельфи кода?
карма: 2

0
Разработчик
Ответов: 25681
Рейтинг: 2087
#21: 2014-05-18 23:28:56 ЛС | профиль | цитата
Rysik писал(а):
но согласись ftp без chmod это как бы не очень хорошо

Народ прекрасно работает с ftp и без всяких chmod.
Rysik писал(а):
выкрутиться посредством портирования php ?, вместо дельфи кода?

Вот не надо тут предлагать скрещивать ежей и ужей. На компоненте ясно же написано -- FTP-клиент через WinAPI, тч только функции WinAPI и ничего больше
карма: 20

1
Голосовали:Tad
Ответов: 4341
Рейтинг: 677
#22: 2014-05-19 16:30:24 ЛС | профиль | цитата
Закончил тестировать докачку ftpc_readwrite 2014-05-22.7z
Вывод следующий: имеющееся в wininet.dll API не позволяет корректно послать подряд команды REST и RETR. Предложенный в архиве код будет работать только на некоторых серверах (я пробовал на ProFTPd - работает, на остальных - нет).
nesco, обрати внимание, что функция FTPCommand объявлена в том же модуле, потому что в wininet.pas - ошибочная.

Получение информации по файлу:

#pas
function GetFTPFileInfo(hFTP: HINTERNET; const FileName: string): Boolean;
var
hFind: HINTERNET;
FindData: TWin32FindData;
begin
Result := False;
hFind := FtpFindFirstFile(hFTP, PChar(FileName), FindData, INTERNET_FLAG_RELOAD, 0);
if (hFind <> nil) then
begin
Result := True;
// Здесь из структуры FindData можно получить ту же информацию, что и в FTPC_FileSearch
InternetCloseHandle(hFind);
end;
end;
Изменение прав на файлы:
SITE CHMOD 644 <filename>
Если будешь делать FTPC_FileAttributes, можешь добавить туда. Rysik будет прыгать от щастья.

Наиболее полный перечень команд FTP со ссылками на официальную документацию:
http://www.iana.org/assignments/ftp-commands-extensions/ftp-commands-extensions.xhtml
карма: 25

0
Разработчик
Ответов: 25681
Рейтинг: 2087
#23: 2014-05-19 17:44:50 ЛС | профиль | цитата
Netspirit писал(а):
Изменение прав на файлы

А где параметры самих прав взять
Надо же еше ответ получить от сервера. А ты пробовал эту команду подавать
Netspirit писал(а):
Если будешь делать FTPC_FileAttributes

А зачем его делать, когда есть FTPC_FileSearch, достаточно туда просто приписать еще одну точку
Я вообще не понимаю, зачем такие сложности с добавлением GetFTPFileInfo, когда FTPC_FileSearch таеже может искать только один файл, если в качестве маски подать имя
карма: 20

0
Ответов: 4341
Рейтинг: 677
#24: 2014-05-19 19:39:04 ЛС | профиль | цитата
nesco писал(а):
А где параметры самих прав взять
Так пользователь задаёт (644). Это только установка, а как их прочитать - не знаю.
nesco писал(а):
А зачем его делать, когда есть FTPC_FileSearch
Для удобства наверное...
------------ Дoбавленo в 19.39:
Черт её поймет эту FTPCommand! Пока что похоже, её не удастся применить для докачки: при посылке любой команды она сама вставляет перед ней "TYPE I", "PASV", из-за чего не получится послать подряд "REST" и "RETR".
карма: 25

0
Разработчик
Ответов: 25681
Рейтинг: 2087
#25: 2014-05-20 13:18:45 ЛС | профиль | цитата
Netspirit писал(а):
Это только установка, а как их прочитать - не знаю

Так вот это и есть атрибуты файла на сервере. Я посмотрел Тотал, так вот на FTP он имеено эти атрибуты файлов и выдает, те атрибуты безопасности, а не дисковые файловые атрибуты. К тому же, не все сервера понимают команду 'SITE'. Неплохо бы найти, как читаются эти атрибуты безопасности
карма: 20

0
Ответов: 4341
Рейтинг: 677
#26: 2014-05-20 13:38:10 ЛС | профиль | цитата
Так мы и говорим о "атрибутах безопасности", а точнее о правах доступа на UNIX-системах. Ничего другого и не предполагалось.
Как они читаются я тоже не знаю. Предполагаю, они выдаются вместе с другой информацией при получении форматированного листинга каталога (как у тебя в FileSearch).
То, что не все сервера понимают, это ясно.
карма: 25

0
Разработчик
Ответов: 25681
Рейтинг: 2087
#27: 2014-05-20 13:42:43 ЛС | профиль | цитата
Netspirit писал(а):
Предполагаю, они выдаются вместе с другой информацией при получении форматированного листинга каталога

Теперь осталось найти, как это можно реализовать в WinAPI
карма: 20

0
Ответов: 4341
Рейтинг: 677
#28: 2014-05-20 13:46:53 ЛС | профиль | цитата
Что-то мне кажется придется посылать команду листинга вручную и парсить вывод. Большой гемор ради такого пустяка. Установки атрибутов для большинства задач будет достаточно.
карма: 25

0
Разработчик
Ответов: 25681
Рейтинг: 2087
#29: 2014-05-20 14:58:48 ЛС | профиль | цитата
Netspirit писал(а):
Что-то мне кажется придется посылать команду листинга вручную и парсить вывод

Я посмотрел как работает библиотека Indy, так там они парсят строку в формате UNIX -- метод

procedure TIdFTPListItems.ParseUnix(AItem: TIdFTPListItem);

карма: 20

0
Ответов: 4341
Рейтинг: 677
#30: 2014-05-22 18:10:47 ЛС | профиль | цитата
Набросал примерно компонент FTPC_FileAttributes, кому будет интересно. Есть установка прав на файл. Без иконки.
Там же в архиве небольшая модификация FTPC_ReadWrite:
- добавлен метод doAbort для остановки операции
- добавлена защита от повторного вызова doFileOperation
- оптимизирована выдача ошибок заменой повторяющихся фрагментов на вызов отдельной процедуры. Можно сделать во всех компонентах.

nesco, в папке icon есть файлы FTPC_Exists.ico, FTPC_FileExists.ico, а где сами компоненты?
карма: 25

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)