Client-Server Protocol RU
Version 40 (Troex Nevelin, 02.02.2010 01:37)
| 1 | 1 | h1. Описание протокола клиент-сервер |
|
|---|---|---|---|
| 2 | 1 | ||
| 3 | 4 | Troex Nevelin | {{>toc}} |
| 4 | 4 | Troex Nevelin | |
| 5 | 6 | Troex Nevelin | _Коннектор (connector)_ - обрабатывается на сервере (PHP, Python). _Клиент (client)_ - обрабатывается на стороне пользователя в браузере (JavaScript). Когда пользователь выполняет какое-либо действие с файлами _клиент_ отправляет на сервер (в _коннектор_) запрос и получает ответ. _Коннектор_ получает данные от _клиента_ через GET или через POST (только при загрузке _upload_ и редактировании _edit_). _Коннектор_ всегда возвращает _клиенту_ объект JSON. |
| 6 | 1 | ||
| 7 | 2 | Troex Nevelin | Обязятельный параметр, всегда ожидаемый коннектором - *cmd* - имя команды, пример: @http://localhost/connector.php?cmd=open@ |
| 8 | 1 | ||
| 9 | 2 | Troex Nevelin | Для любой команды ответ коннектора может содержать следующие параметры: |
| 10 | 2 | Troex Nevelin | * *error* : Строка с сообщением об ошибке |
| 11 | 2 | Troex Nevelin | * *errorData* : Массив с сообщениями о нефатальных ошибках |
| 12 | 36 | Troex Nevelin | * *select* : hash файла/директории, которые необходимо выделить после перерисовки контента (upload, mkdir, mkfile и т.д.) или же массив с hash'ами которые необходимо выделить |
| 13 | 2 | Troex Nevelin | * *debug* : массив с отладочной информацией |
| 14 | 1 | ||
| 15 | 1 | Команды клиентской части не полностью совпадают с командами коннектора: |
|
| 16 | 2 | Troex Nevelin | * *reload*, *back* - реализуются серверной командой *open* |
| 17 | 2 | Troex Nevelin | * *list*, *icons*, *quicklook*, *copy*, *cut* - работают только на клиенте и не обращаются к коннектору |
| 18 | 1 | ||
| 19 | 2 | Troex Nevelin | Любая команда, получившая некорректные аргументы, прекращает дальнейшее выполнение и возвращает *error* (сообщение об ошибке); исключение *open* - возвращает сообщение об ошибке и контент корневой директории. |
| 20 | 4 | Troex Nevelin | |
| 21 | 3 | Troex Nevelin | *Внимание!* Пути к файлам не передаются в чистом виде, только hash от пути (md5 или любая другая hash-функция). |
| 22 | 1 | ||
| 23 | 7 | Troex Nevelin | h2. Инициализация файлового менеджера |
| 24 | 1 | ||
| 25 | 7 | Troex Nevelin | Аргументы передаваемые клиентом коннектору (клиент -> сервер): |
| 26 | 6 | Troex Nevelin | * *cmd* : open |
| 27 | 6 | Troex Nevelin | * *init* : true |
| 28 | 1 | * *tree* : true |
|
| 29 | 6 | Troex Nevelin | |
| 30 | 20 | Troex Nevelin | Пример: @http://localhost:8001/~troex/cgi/connector.py?cmd=open&init=true&tree=true@ |
| 31 | 7 | Troex Nevelin | |
| 32 | 7 | Troex Nevelin | Ответ (сервер -> клиент): смотрите описание команды [[Client-Server_Protocol_RU#open|open]], плюс дополнительно ответ включает: |
| 33 | 12 | Troex Nevelin | |
| 34 | 6 | Troex Nevelin | * *disabled* : (Array) список отключенных команд |
| 35 | 22 | Troex Nevelin | * *params*: (Object) |
| 36 | 22 | Troex Nevelin | ** *url*: (String) |
| 37 | 22 | Troex Nevelin | ** *dotFiles* : (Boolean) разрешено ли показывать скрытые файлы, начинающиеся с точки |
| 38 | 22 | Troex Nevelin | ** *uplMaxSize* : (String) макимальный разрешенный размер загружаемых файлов (например: 128M) |
| 39 | 22 | Troex Nevelin | ** *archives* : (Array) Список mime-типов архивов, которые могут быть созданы коннектором |
| 40 | 22 | Troex Nevelin | ** *extract* : (Array) Список mime-типов архивов, которые коннектор может распаковать |
| 41 | 12 | Troex Nevelin | |
| 42 | 12 | Troex Nevelin | Пример корректного ответа: |
| 43 | 12 | Troex Nevelin | |
| 44 | 17 | Troex Nevelin | !elFinder-init.png! |
| 45 | 1 | ||
| 46 | 20 | Troex Nevelin | JSON: |
| 47 | 21 | Troex Nevelin | <pre><code class="json"> |
| 48 | 12 | Troex Nevelin | { |
| 49 | 15 | Troex Nevelin | "cwd": { |
| 50 | 19 | Troex Nevelin | "name" : "Home", |
| 51 | 19 | Troex Nevelin | "hash" : "b4473c8c08d1d499ecd7112f3398f125", |
| 52 | 19 | Troex Nevelin | "rel" : "Home", |
| 53 | 19 | Troex Nevelin | "date" : "30 Jan 2010 14:25", |
| 54 | 19 | Troex Nevelin | "mime" : "directory", |
| 55 | 19 | Troex Nevelin | "size" : 0, |
| 56 | 19 | Troex Nevelin | "read" : true, |
| 57 | 19 | Troex Nevelin | "write" : true, |
| 58 | 19 | Troex Nevelin | "rm" : false |
| 59 | 15 | Troex Nevelin | }, |
| 60 | 14 | Troex Nevelin | "cdc": [ |
| 61 | 14 | Troex Nevelin | { |
| 62 | 19 | Troex Nevelin | "name" : "test", |
| 63 | 19 | Troex Nevelin | "hash" : "ac4b61565950a73395c871f9c3fc7362", |
| 64 | 19 | Troex Nevelin | "date" : "Today 14:11", |
| 65 | 19 | Troex Nevelin | "mime" : "directory", |
| 66 | 19 | Troex Nevelin | "size" : 102, |
| 67 | 19 | Troex Nevelin | "read" : true, |
| 68 | 19 | Troex Nevelin | "write" : true, |
| 69 | 19 | Troex Nevelin | "rm" : true |
| 70 | 1 | }, |
|
| 71 | 17 | Troex Nevelin | { |
| 72 | 19 | Troex Nevelin | "name" : "link to README", |
| 73 | 19 | Troex Nevelin | "hash" : "4fc059e61577f0267fbd6c1c5bafb1b4", |
| 74 | 19 | Troex Nevelin | "url" : "http://localhost:8001/~troex/git/elfinder/files/wiki/README.txt", |
| 75 | 19 | Troex Nevelin | "date" : "Today 16:50", |
| 76 | 19 | Troex Nevelin | "mime" : "text/plain", |
| 77 | 19 | Troex Nevelin | "size" : 10, |
| 78 | 19 | Troex Nevelin | "read" : true, |
| 79 | 19 | Troex Nevelin | "write" : true, |
| 80 | 19 | Troex Nevelin | "rm" : true, |
| 81 | 19 | Troex Nevelin | "link" : "8d331825ebfbe1ddae14d314bf81a712", |
| 82 | 19 | Troex Nevelin | "linkTo": "Home/README.txt", |
| 83 | 19 | Troex Nevelin | "parent": "b4473c8c08d1d499ecd7112f3398f125" |
| 84 | 17 | Troex Nevelin | }, |
| 85 | 17 | Troex Nevelin | { |
| 86 | 19 | Troex Nevelin | "name" : "logo.png", |
| 87 | 19 | Troex Nevelin | "hash" : "a696323d7fd86513754004ba8bc12967", |
| 88 | 19 | Troex Nevelin | "url" : "http://localhost:8001/~troex/git/elfinder/files/wiki/logo.png", |
| 89 | 19 | Troex Nevelin | "date" : "11 Nov 2009 21:57", |
| 90 | 19 | Troex Nevelin | "mime" : "image/png", |
| 91 | 19 | Troex Nevelin | "size" : 18782, |
| 92 | 19 | Troex Nevelin | "read" : true, |
| 93 | 19 | Troex Nevelin | "write" : true, |
| 94 | 19 | Troex Nevelin | "rm" : true |
| 95 | 17 | Troex Nevelin | }, |
| 96 | 14 | Troex Nevelin | { |
| 97 | 19 | Troex Nevelin | "name" : "README.txt", |
| 98 | 19 | Troex Nevelin | "hash" : "8d331825ebfbe1ddae14d314bf81a712", |
| 99 | 19 | Troex Nevelin | "url" : "http://localhost:8001/~troex/git/elfinder/files/wiki/README.txt", |
| 100 | 19 | Troex Nevelin | "date" : "Today 14:25", |
| 101 | 19 | Troex Nevelin | "mime" : "text/plain", |
| 102 | 19 | Troex Nevelin | "size" : 1171, |
| 103 | 19 | Troex Nevelin | "read" : true, |
| 104 | 19 | Troex Nevelin | "write" : true, |
| 105 | 19 | Troex Nevelin | "rm" : true |
| 106 | 14 | Troex Nevelin | } |
| 107 | 14 | Troex Nevelin | ], |
| 108 | 14 | Troex Nevelin | "tree": { |
| 109 | 19 | Troex Nevelin | "name" : "Home", |
| 110 | 19 | Troex Nevelin | "hash" : "b4473c8c08d1d499ecd7112f3398f125", |
| 111 | 19 | Troex Nevelin | "read" : true, |
| 112 | 19 | Troex Nevelin | "write" : true, |
| 113 | 19 | Troex Nevelin | "dirs" : [ |
| 114 | 14 | Troex Nevelin | { |
| 115 | 19 | Troex Nevelin | "name" : "test", |
| 116 | 19 | Troex Nevelin | "hash" : "ac4b61565950a73395c871f9c3fc7362", |
| 117 | 19 | Troex Nevelin | "read" : true, |
| 118 | 19 | Troex Nevelin | "write" : true, |
| 119 | 19 | Troex Nevelin | "dirs" : [ |
| 120 | 14 | Troex Nevelin | { |
| 121 | 19 | Troex Nevelin | "name" : "test2", |
| 122 | 19 | Troex Nevelin | "hash" : "b3615611cf9f8f6a8821ef20eda450b5", |
| 123 | 19 | Troex Nevelin | "read" : true, |
| 124 | 19 | Troex Nevelin | "write" : true, |
| 125 | 19 | Troex Nevelin | "dirs" : [] |
| 126 | 14 | Troex Nevelin | } |
| 127 | 14 | Troex Nevelin | ] |
| 128 | 14 | Troex Nevelin | } |
| 129 | 14 | Troex Nevelin | ], |
| 130 | 14 | Troex Nevelin | }, |
| 131 | 19 | Troex Nevelin | "disabled" : [], |
| 132 | 19 | Troex Nevelin | "params" : { |
| 133 | 19 | Troex Nevelin | "url" : "http://localhost:8001/~troex/git/elfinder/files/wiki", |
| 134 | 19 | Troex Nevelin | "dotFiles" : true, |
| 135 | 1 | "uplMaxSize" : "15M", |
|
| 136 | 1 | "extract" : [ |
|
| 137 | 1 | "application/x-7z-compressed", |
|
| 138 | 1 | "application/x-tar", |
|
| 139 | 1 | "application/x-gzip", |
|
| 140 | 1 | "application/x-bzip2", |
|
| 141 | 1 | "application/zip" |
|
| 142 | 1 | ], |
|
| 143 | 1 | "archives" : [ |
|
| 144 | 1 | "application/x-7z-compressed", |
|
| 145 | 1 | "application/x-tar", |
|
| 146 | 1 | "application/x-gzip", |
|
| 147 | 1 | "application/x-bzip2", |
|
| 148 | 1 | "application/zip" |
|
| 149 | 1 | ] |
|
| 150 | 1 | } |
|
| 151 | 1 | } |
|
| 152 | 1 | </code></pre> |
|
| 153 | 40 | Troex Nevelin | |
| 154 | 40 | Troex Nevelin | h2. Список команд |
| 155 | 40 | Troex Nevelin | |
| 156 | 40 | Troex Nevelin | *open* - открыть директорию или вывести содержимое файла в браузер |
| 157 | 40 | Troex Nevelin | *mkdir* - создать директорию |
| 158 | 40 | Troex Nevelin | *mkfile* - создать текстовый файл |
| 159 | 40 | Troex Nevelin | *rename* - переименовать директориб или файл |
| 160 | 40 | Troex Nevelin | *upload* - загрузить файлы |
| 161 | 40 | Troex Nevelin | *ping* - служебная команда. необходима для Safari (загрузка файлов) |
| 162 | 40 | Troex Nevelin | *paste* - скопировать или переместить файлы/директории в указанную директорию |
| 163 | 40 | Troex Nevelin | *rm* - удалить директорию/файлы |
| 164 | 40 | Troex Nevelin | *duplicate* - сделать копию директории/файла |
| 165 | 40 | Troex Nevelin | *read* - вернуть содержимое текстового файла |
| 166 | 40 | Troex Nevelin | *edit* - сохранить текст в файл |
| 167 | 40 | Troex Nevelin | *extract* - распаковать архив |
| 168 | 40 | Troex Nevelin | *archive* - сжать директории/файлы в архив |
| 169 | 40 | Troex Nevelin | *tmb* - создать превьюшки для картинок, не имеющих их |
| 170 | 40 | Troex Nevelin | *resize* - изменить размер изображения |
| 171 | 2 | Troex Nevelin | |
| 172 | 6 | Troex Nevelin | h2. Описание команд |
| 173 | 1 | ||
| 174 | 8 | Troex Nevelin | h3. open |
| 175 | 1 | ||
| 176 | 8 | Troex Nevelin | Возвращает содержимое директории или выводит файл в браузер. |
| 177 | 9 | Troex Nevelin | |
| 178 | 1 | 1. Открытие директории |
|
| 179 | 6 | Troex Nevelin | |
| 180 | 6 | Troex Nevelin | Аргументы: |
| 181 | 6 | Troex Nevelin | * *cmd* : open |
| 182 | 9 | Troex Nevelin | * *target* : hash пути директории |
| 183 | 1 | * *tree* : Не обязательный параметр. Если задан - дополнительно вернуть дерево директорий |
|
| 184 | 9 | Troex Nevelin | |
| 185 | 27 | Troex Nevelin | Ответ должен содержать (Object) _cwd_ и массив (Array) _cdc_, дополнительно может присутствовать (Object) _tree_, пример: |
| 186 | 23 | Troex Nevelin | <pre><code class="json"> |
| 187 | 1 | { |
|
| 188 | 25 | Troex Nevelin | "cwd" : { // (Object) Current Working Directory - Информация о текущей директории |
| 189 | 23 | Troex Nevelin | "name" : "Home", // (String) Имя директории |
| 190 | 26 | Troex Nevelin | "hash" : "b4473c8c08d1d499ecd7112f3398f125", // (String) hash от абсолютного пути файла на сервере |
| 191 | 23 | Troex Nevelin | "mime" : "directory", // (String) всегда "directory" |
| 192 | 23 | Troex Nevelin | "rel" : "Home", // (String) относительный путь до текущей директории |
| 193 | 23 | Troex Nevelin | "size" : 0, // (Number) размер директории в байтах |
| 194 | 23 | Troex Nevelin | "date" : "30 Jan 2010 14:25", // (String) время изменения (mtime) |
| 195 | 23 | Troex Nevelin | "read" : true, // (Boolean) право на чтение |
| 196 | 23 | Troex Nevelin | "write" : true, // (Boolean) право на запись |
| 197 | 23 | Troex Nevelin | "rm" : false // (Boolean) право на удаление |
| 198 | 23 | Troex Nevelin | }, |
| 199 | 23 | Troex Nevelin | "cdc" : [ // (Array) (of Objects) Current Directory Content - Информация о содержимом текущей директории |
| 200 | 1 | { |
|
| 201 | 23 | Troex Nevelin | "name" : "link to README", // (String) Имя директории/файла |
| 202 | 23 | Troex Nevelin | "hash" : "4fc059e61577f0267fbd6c1c5bafb1b4", // (String) hash |
| 203 | 23 | Troex Nevelin | "url" : "http://localhost:8001/~troex/git/elfinder/files/wiki/README.txt", // (String) URL |
| 204 | 23 | Troex Nevelin | "date" : "Today 16:50", // (String) время изменения (mtime) |
| 205 | 23 | Troex Nevelin | "mime" : "text/plain", // (String) MIME тип файла или "directory" |
| 206 | 23 | Troex Nevelin | "size" : 10, // (Number) размер директории в байтах |
| 207 | 23 | Troex Nevelin | "read" : true, // (Boolean) право на чтение |
| 208 | 23 | Troex Nevelin | "write" : true, // (Boolean) право на запись |
| 209 | 23 | Troex Nevelin | "rm" : true, // (Boolean) право на удаление |
| 210 | 23 | Troex Nevelin | "link" : "8d331825ebfbe1ddae14d314bf81a712", // (String) только для ссылок, hash файла |
| 211 | 23 | Troex Nevelin | // на который ведёт ссылка |
| 212 | 23 | Troex Nevelin | "linkTo": "Home/README.txt", // (String) только для ссылок, относительный путь |
| 213 | 23 | Troex Nevelin | // до файла, на который указывает ссылка |
| 214 | 23 | Troex Nevelin | "parent": "b4473c8c08d1d499ecd7112f3398f125" // (String) только для ссылок, hash директории |
| 215 | 23 | Troex Nevelin | // в который находиться файл, на который |
| 216 | 23 | Troex Nevelin | // указывает ссылка |
| 217 | 1 | }, |
|
| 218 | 23 | Troex Nevelin | { |
| 219 | 23 | Troex Nevelin | // ... |
| 220 | 23 | Troex Nevelin | } |
| 221 | 23 | Troex Nevelin | ], |
| 222 | 23 | Troex Nevelin | "tree" : { // (Object) Дерево директорий. Не обязательный параметр, только если был передан аргумент "tree" |
| 223 | 23 | Troex Nevelin | "name" : "Home", // (String) Имя директории |
| 224 | 23 | Troex Nevelin | "hash" : "b4473c8c08d1d499ecd7112f3398f125", // (String) hash |
| 225 | 23 | Troex Nevelin | "read" : true, // (Boolean) право на чтение |
| 226 | 23 | Troex Nevelin | "write" : true, // (Boolean) право на запись |
| 227 | 23 | Troex Nevelin | "dirs" : [ // (Array) (of Objects) массив дочерних директории |
| 228 | 23 | Troex Nevelin | { |
| 229 | 23 | Troex Nevelin | "name" : "test", |
| 230 | 23 | Troex Nevelin | "hash" : "ac4b61565950a73395c871f9c3fc7362", |
| 231 | 23 | Troex Nevelin | "read" : true, |
| 232 | 23 | Troex Nevelin | "write" : true, |
| 233 | 23 | Troex Nevelin | "dirs" : [ |
| 234 | 23 | Troex Nevelin | { |
| 235 | 23 | Troex Nevelin | // ... |
| 236 | 23 | Troex Nevelin | }, |
| 237 | 23 | Troex Nevelin | { |
| 238 | 23 | Troex Nevelin | // ... |
| 239 | 23 | Troex Nevelin | } |
| 240 | 23 | Troex Nevelin | ] |
| 241 | 23 | Troex Nevelin | } |
| 242 | 23 | Troex Nevelin | } |
| 243 | 8 | Troex Nevelin | } |
| 244 | 23 | Troex Nevelin | </code></pre> |
| 245 | 23 | Troex Nevelin | |
| 246 | 27 | Troex Nevelin | *Внимание!* Если передан некорректный аргумент *target*, возвращает контент корневой директории (_cdc, cdw_) и сообщение об ошибке (_error_). |
| 247 | 8 | Troex Nevelin | |
| 248 | 1 | 2. Открытие файла (вывод содержимого в браузер). |
|
| 249 | 1 | ||
| 250 | 1 | Аргументы: |
|
| 251 | 1 | * *cmd* : open |
|
| 252 | 8 | Troex Nevelin | * *target* : hash пути файла |
| 253 | 27 | Troex Nevelin | * *current* : hash пути к директории, где находится файл |
| 254 | 1 | ||
| 255 | 8 | Troex Nevelin | Ответ: |
| 256 | 1 | ||
| 257 | 27 | Troex Nevelin | Файл выводится в браузер с соответствующими заголовками. |
| 258 | 1 | ||
| 259 | 8 | Troex Nevelin | |
| 260 | 8 | Troex Nevelin | h3. mkdir |
| 261 | 8 | Troex Nevelin | |
| 262 | 39 | Troex Nevelin | Создать новую директорию. |
| 263 | 1 | ||
| 264 | 1 | Аргументы: |
|
| 265 | 1 | * *cmd* : mkdir |
|
| 266 | 30 | Troex Nevelin | * *current* : hash директории, в которой создаем новую директорию |
| 267 | 30 | Troex Nevelin | * *name* : имя новой директории |
| 268 | 1 | ||
| 269 | 36 | Troex Nevelin | Ответ: [[Client-Server_Protocol_RU#open|open]] с деревом директорий _tree_ и *select* - hash новой директории |
| 270 | 34 | Troex Nevelin | |
| 271 | 32 | Troex Nevelin | <pre><code class="json"> |
| 272 | 32 | Troex Nevelin | { |
| 273 | 32 | Troex Nevelin | // open |
| 274 | 32 | Troex Nevelin | "cwd" : { |
| 275 | 32 | Troex Nevelin | // ... |
| 276 | 32 | Troex Nevelin | }, |
| 277 | 32 | Troex Nevelin | "cdc" : [ |
| 278 | 32 | Troex Nevelin | // ... |
| 279 | 32 | Troex Nevelin | ], |
| 280 | 32 | Troex Nevelin | "tree" : { |
| 281 | 32 | Troex Nevelin | // ... |
| 282 | 32 | Troex Nevelin | }, |
| 283 | 33 | Troex Nevelin | "select": "ac4b61565950a73395c871f9c3fc7362" // (String) hash новой директории |
| 284 | 32 | Troex Nevelin | } |
| 285 | 32 | Troex Nevelin | </code></pre> |
| 286 | 30 | Troex Nevelin | |
| 287 | 32 | Troex Nevelin | |
| 288 | 9 | Troex Nevelin | h3. mkfile |
| 289 | 9 | Troex Nevelin | |
| 290 | 1 | Создать новый файл. |
|
| 291 | 9 | Troex Nevelin | |
| 292 | 9 | Troex Nevelin | Аргументы: |
| 293 | 1 | * *cmd* : mkfile |
|
| 294 | 1 | * *current* : hash директории, в которой создаем файл |
|
| 295 | 1 | * *name* : имя нового файла |
|
| 296 | 1 | ||
| 297 | 36 | Troex Nevelin | Ответ: [[Client-Server_Protocol_RU#open|open]] и *select* - hash нового файла |
| 298 | 9 | Troex Nevelin | |
| 299 | 9 | Troex Nevelin | h3. rename |
| 300 | 9 | Troex Nevelin | |
| 301 | 30 | Troex Nevelin | Переименование директории/файла |
| 302 | 1 | ||
| 303 | 9 | Troex Nevelin | Аргументы: |
| 304 | 9 | Troex Nevelin | * *cmd* : rename |
| 305 | 1 | * *current* : hash директории, где файл находится |
|
| 306 | 30 | Troex Nevelin | * *target* : hash директории/файла для переименования |
| 307 | 1 | * *name* : новое имя директории/файла |
|
| 308 | 30 | Troex Nevelin | |
| 309 | 36 | Troex Nevelin | Ответ: [[Client-Server_Protocol_RU#open|open]] (если переименовали директорию, то open возвращается с деревом директорий) и *select* - hash переименованной директории/файла |
| 310 | 1 | ||
| 311 | 1 | h3. upload |
|
| 312 | 1 | ||
| 313 | 1 | Загрузка файлов |
|
| 314 | 1 | ||
| 315 | 9 | Troex Nevelin | Аргументы (передаются методом POST): |
| 316 | 9 | Troex Nevelin | * *cmd* : upload |
| 317 | 1 | * *current* : hash директории, в которую загружаем файлы |
|
| 318 | 1 | * *files* : массив файлов |
|
| 319 | 30 | Troex Nevelin | |
| 320 | 30 | Troex Nevelin | Ответ: |
| 321 | 30 | Troex Nevelin | |
| 322 | 30 | Troex Nevelin | 1. Если ни одного файла не удалось загрузить, возвращаем только |
| 323 | 1 | <pre><code class="json"> |
|
| 324 | 1 | { |
|
| 325 | 1 | "error" : "Unable to upload files" |
|
| 326 | 30 | Troex Nevelin | } |
| 327 | 1 | </code></pre> |
|
| 328 | 1 | ||
| 329 | 36 | Troex Nevelin | 2. Если хотя бы один файл был загружен, ответ [[Client-Server_Protocol_RU#open|open]] и *select*. Если не были загружены не все файлы от выведутся сообщения об ошибках *error* и *errorData*: |
| 330 | 36 | Troex Nevelin | |
| 331 | 30 | Troex Nevelin | <pre><code class="json"> |
| 332 | 30 | Troex Nevelin | { |
| 333 | 30 | Troex Nevelin | // open |
| 334 | 32 | Troex Nevelin | "select" : [ "8d331825ebfbe1ddae14d314bf81a712" ], // (Array) массив hash'ей путей загруженных файлов |
| 335 | 32 | Troex Nevelin | "error" : "Some files was not uploaded", // (String) если не все файлы были загружены |
| 336 | 32 | Troex Nevelin | "errorData" : { // (Object) инф. о файлах, которые не удалось загрузить |
| 337 | 32 | Troex Nevelin | "some-file.exe" : "Not allowed file type" // (String) "имя файла": "ошибка" |
| 338 | 9 | Troex Nevelin | } |
| 339 | 1 | } |
|
| 340 | 30 | Troex Nevelin | </code></pre> |
| 341 | 9 | Troex Nevelin | |
| 342 | 9 | Troex Nevelin | h3. ping |
| 343 | 9 | Troex Nevelin | |
| 344 | 33 | Troex Nevelin | Служебная команда, необходима для исправления бага Safari при загрузке файлов http://www.webmasterworld.com/macintosh_webmaster/3300569.htm |
| 345 | 1 | ||
| 346 | 1 | Аргументы: |
|
| 347 | 32 | Troex Nevelin | * *cmd* : ping |
| 348 | 1 | ||
| 349 | 1 | Ответ: отсылает пустую страницу с заголовком @Connection: close@ |
|
| 350 | 1 | ||
| 351 | 1 | h3. paste |
|
| 352 | 9 | Troex Nevelin | |
| 353 | 1 | Копирует или перемещает директории/файлы |
|
| 354 | 1 | ||
| 355 | 1 | Аргументы: |
|
| 356 | 1 | * *cmd* : paste |
|
| 357 | 32 | Troex Nevelin | * *src* : hash директории, из которой перемещаем/копируем файлы |
| 358 | 32 | Troex Nevelin | * *dst* : hash директории, в которую перемещаем/копируем файлы |
| 359 | 32 | Troex Nevelin | * *files* : массив hash'ей копируемых директорий/файлов |
| 360 | 9 | Troex Nevelin | * *cut* : true если файлы перемещаются, false или аргумент отсутствует если файлы копируются |
| 361 | 1 | ||
| 362 | 32 | Troex Nevelin | Ответ: |
| 363 | 36 | Troex Nevelin | 1. Если не удалось скопировать/переместить хотя бы один файл: *error* - сообщение об ошибке |
| 364 | 9 | Troex Nevelin | |
| 365 | 32 | Troex Nevelin | 2. Если копирование/перемещение прошло успешно, возвращает [[Client-Server_Protocol_RU#open|open]] с деревом директорий. |
| 366 | 1 | ||
| 367 | 32 | Troex Nevelin | *Внимание!* Команда должна прекращать копирование при первой же ошибке. Не допускается перезапись файлов/директорий с одинаковыми именами. |
| 368 | 11 | Troex Nevelin | |
| 369 | 1 | h3. rm |
|
| 370 | 11 | Troex Nevelin | |
| 371 | 1 | Удаление файлов и рекурсивное удаление директорий |
|
| 372 | 28 | Troex Nevelin | |
| 373 | 1 | Аргументы: |
|
| 374 | 1 | * *cmd* : rm |
|
| 375 | 39 | Troex Nevelin | * *current* : hash директории, из которой удалем файлы |
| 376 | 39 | Troex Nevelin | * *rm* : массив hash'ей удаляемых директорий/файлов |
| 377 | 1 | ||
| 378 | 36 | Troex Nevelin | Ответ: [[Client-Server_Protocol_RU#open|open]] с деревом директорий, при ошибках *error* и *errorData*. |
| 379 | 1 | ||
| 380 | 1 | h3. duplicate |
|
| 381 | 1 | ||
| 382 | 36 | Troex Nevelin | Создает копию директории/файла. Имя копии формируется следующим образом: базовое_имя_файла copy+порядковый номер.расширение (если есть) |
| 383 | 1 | ||
| 384 | 1 | Аргументы: |
|
| 385 | 1 | * *cmd* : duplicate |
|
| 386 | 39 | Troex Nevelin | * *current* : hash директории, в которой создаем дубликат |
| 387 | 39 | Troex Nevelin | * *file* : hash директории/файла, для которого создаем дубликат |
| 388 | 1 | ||
| 389 | 36 | Troex Nevelin | Ответ: [[Client-Server_Protocol_RU#open|open]] (если скопировали директорию, то open возвращается с деревом директорий), *select* - hash пути дубликата. |
| 390 | 11 | Troex Nevelin | |
| 391 | 1 | h3. read |
|
| 392 | 1 | ||
| 393 | 36 | Troex Nevelin | Возвращает содержимое текстового файла. |
| 394 | 1 | ||
| 395 | 11 | Troex Nevelin | Аргументы: |
| 396 | 1 | * *cmd* : edit |
|
| 397 | 39 | Troex Nevelin | * *current* : hash директории, в которой читаем файл |
| 398 | 1 | * *file* : hash файла |
|
| 399 | 1 | ||
| 400 | 36 | Troex Nevelin | Ответ: *content* - содержимое текстового файла |
| 401 | 1 | ||
| 402 | 36 | Troex Nevelin | <pre><code class="json"> |
| 403 | 36 | Troex Nevelin | { |
| 404 | 36 | Troex Nevelin | "content": "Hello world!" // (String) содержимое текстового фала |
| 405 | 36 | Troex Nevelin | } |
| 406 | 36 | Troex Nevelin | </code></pre> |
| 407 | 36 | Troex Nevelin | |
| 408 | 1 | h3. edit |
|
| 409 | 1 | ||
| 410 | 36 | Troex Nevelin | Сохраняет полученный текст в файл. |
| 411 | 1 | ||
| 412 | 11 | Troex Nevelin | Аргументы (передаются методом POST): |
| 413 | 11 | Troex Nevelin | * *cmd* : edit |
| 414 | 36 | Troex Nevelin | * *current* : hash директории, в которой сохраняется файл |
| 415 | 1 | * *file* : hash файла |
|
| 416 | 1 | * *content* : новое содержимое файла |
|
| 417 | 1 | ||
| 418 | 37 | Troex Nevelin | Ответ: *file* - объект, аналогичный описывающему файл в секции _cdc_ команды [[Client-Server_Protocol_RU#open|open]] |
| 419 | 36 | Troex Nevelin | <pre><code class="json"> |
| 420 | 1 | { |
|
| 421 | 38 | Troex Nevelin | "file" : { |
| 422 | 37 | Troex Nevelin | "name" : "README.txt", |
| 423 | 37 | Troex Nevelin | "hash" : "8d331825ebfbe1ddae14d314bf81a712", |
| 424 | 37 | Troex Nevelin | "url" : "http://localhost:8001/~troex/git/elfinder/files/wiki/README.txt", |
| 425 | 37 | Troex Nevelin | "date" : "Today 14:25", |
| 426 | 37 | Troex Nevelin | "mime" : "text/plain", |
| 427 | 37 | Troex Nevelin | "size" : 1171, |
| 428 | 37 | Troex Nevelin | "read" : true, |
| 429 | 37 | Troex Nevelin | "write" : true, |
| 430 | 37 | Troex Nevelin | "rm" : true |
| 431 | 37 | Troex Nevelin | } |
| 432 | 1 | } |
|
| 433 | 1 | </code></pre> |
|
| 434 | 1 | ||
| 435 | 1 | h3. extract |
|
| 436 | 1 | ||
| 437 | 36 | Troex Nevelin | Распаковывает архив. |
| 438 | 1 | ||
| 439 | 1 | Аргументы: |
|
| 440 | 1 | * *cmd* : extract |
|
| 441 | 36 | Troex Nevelin | * *current* : hash директории, в которой находится файл |
| 442 | 1 | * *target* : hash файла архива |
|
| 443 | 1 | ||
| 444 | 36 | Troex Nevelin | Ответ: [[Client-Server_Protocol_RU#open|open]] с деревом директорий |
| 445 | 1 | ||
| 446 | 1 | h3. archive |
|
| 447 | 1 | ||
| 448 | 36 | Troex Nevelin | Упаковывает директории/файлы в архив. |
| 449 | 1 | ||
| 450 | 1 | Аргументы: |
|
| 451 | 1 | * *cmd* : archive |
|
| 452 | 1 | * *type* : mime-тип создаваемого архива |
|
| 453 | 39 | Troex Nevelin | * *current* : hash директории, в которой находятся добавляемые в архив директории/файлы |
| 454 | 39 | Troex Nevelin | * *files* : массив хэшей директорий/файлов |
| 455 | 31 | Troex Nevelin | |
| 456 | 36 | Troex Nevelin | Ответ: [[Client-Server_Protocol_RU#open|open]], *select* - hash нового архива |
| 457 | 31 | Troex Nevelin | |
| 458 | 31 | Troex Nevelin | h3. tmb |
| 459 | 31 | Troex Nevelin | |
| 460 | 31 | Troex Nevelin | Фоновая команда. Создает миниатюрки для картинок, не имеющих их. Кол-во создаваемых за раз миниатюрок, указывается в [[Connector_Configuration_RU|конфиге коннектора]] опцией _tmbAtOnce_. По умолчанию - 5. |
| 461 | 31 | Troex Nevelin | |
| 462 | 31 | Troex Nevelin | Аргументы: |
| 463 | 31 | Troex Nevelin | * *cmd* : tmb |
| 464 | 31 | Troex Nevelin | * *current* : hash пути к директории, в которой создаем миниатюрки |
| 465 | 31 | Troex Nevelin | |
| 466 | 31 | Troex Nevelin | Ответ: |
| 467 | 31 | Troex Nevelin | <pre><code class="json"> |
| 468 | 31 | Troex Nevelin | { |
| 469 | 31 | Troex Nevelin | "current": "b4473c8c08d1d499ecd7112f3398f125", // (String) hash пути к директории, в которой были созданы миниатюрки |
| 470 | 31 | Troex Nevelin | "images" : { // (Object) |
| 471 | 31 | Troex Nevelin | "a696323d7fd86513754004ba8bc12967": // (String) hash пути файла |
| 472 | 31 | Troex Nevelin | "http://localhost:8001/~troex/git/elfinder/files/.tmb/a696323d7fd86513754004ba8bc12967.png" |
| 473 | 31 | Troex Nevelin | // (String) URL миниатюрки |
| 474 | 31 | Troex Nevelin | }, |
| 475 | 31 | Troex Nevelin | "tmb": true // (Boolean) возвращает true если ещё остались картинки для которых не были созданы миниатюрки, |
| 476 | 11 | Troex Nevelin | // иначе параметр отсутствует |
| 477 | 11 | Troex Nevelin | } |
| 478 | 11 | Troex Nevelin | </code></pre> |
| 479 | 11 | Troex Nevelin | |
| 480 | 11 | Troex Nevelin | h3. resize |
| 481 | 1 | ||
| 482 | 36 | Troex Nevelin | Изменение размера изображения. |
| 483 | 1 | ||
| 484 | 1 | Аргументы: |
|
| 485 | 1 | * *cmd* : resize |
|
| 486 | 36 | Troex Nevelin | * *current* : hash директории, в которой находится файл |
| 487 | 36 | Troex Nevelin | * *file* : hash пути изображения |
| 488 | 36 | Troex Nevelin | * *width* : новая ширина изображения |
| 489 | 36 | Troex Nevelin | * *height* : новая высота изображения |
| 490 | 1 | ||
| 491 | 36 | Troex Nevelin | Ответ: [[Client-Server_Protocol_RU#open|open]], *select* - hash пути изображения |