Client-Server Protocol RU

Version 50 (Troex Nevelin, 04.02.2010 02:00)

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