Client-Server Protocol RU

Version 31 (Troex Nevelin, 01.02.2010 02:53)

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