Client-Server Protocol RU

Version 41 (Troex Nevelin, 03.02.2010 02:49)

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 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 22 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 40 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 6 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 23 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 23 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 30 Troex Nevelin
* *files* : массив файлов
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 32 Troex Nevelin
* *files* : массив hash'ей копируемых директорий/файлов
365 36 Troex Nevelin
* *cut* : true если файлы перемещаются, false или аргумент отсутствует если файлы копируются
366 9 Troex Nevelin
367 32 Troex Nevelin
Ответ:
368 1
1. Если не удалось скопировать/переместить хотя бы один файл: *error* - сообщение об ошибке
369 32 Troex Nevelin
370 11 Troex Nevelin
2. Если копирование/перемещение прошло успешно, возвращает [[Client-Server_Protocol_RU#open|open]] с деревом директорий.
371 1
372 11 Troex Nevelin
*Внимание!* Команда должна прекращать копирование при первой же ошибке. Не допускается перезапись файлов/директорий с одинаковыми именами.
373 1
374 28 Troex Nevelin
h3. rm
375 1
376 1
Удаление файлов и рекурсивное удаление директорий
377 39 Troex Nevelin
378 39 Troex Nevelin
Аргументы:
379 1
* *cmd* : rm
380 36 Troex Nevelin
* *current* : hash директории, из которой удалем файлы
381 1
* *rm* : массив hash'ей удаляемых директорий/файлов
382 1
383 1
Ответ: [[Client-Server_Protocol_RU#open|open]] с деревом директорий, при ошибках *error* и *errorData*.
384 36 Troex Nevelin
385 1
h3. duplicate
386 1
387 1
Создает копию директории/файла. Имя копии формируется следующим образом: базовое_имя_файла copy+порядковый номер.расширение (если есть)
388 39 Troex Nevelin
389 39 Troex Nevelin
Аргументы:
390 1
* *cmd* : duplicate
391 36 Troex Nevelin
* *current* : hash директории, в которой создаем дубликат
392 11 Troex Nevelin
* *file* : hash директории/файла, для которого создаем дубликат
393 1
394 1
Ответ: [[Client-Server_Protocol_RU#open|open]] (если скопировали директорию, то open возвращается с деревом директорий), *select* - hash пути дубликата.
395 36 Troex Nevelin
396 1
h3. read
397 11 Troex Nevelin
398 1
Возвращает содержимое текстового файла.
399 39 Troex Nevelin
400 1
Аргументы:
401 1
* *cmd* : edit
402 36 Troex Nevelin
* *current* : hash директории, в которой читаем файл
403 1
* *file* : hash файла
404 36 Troex Nevelin
405 36 Troex Nevelin
Ответ: *content* - содержимое текстового файла
406 36 Troex Nevelin
407 36 Troex Nevelin
<pre><code class="json">
408 36 Troex Nevelin
{
409 36 Troex Nevelin
    "content": "Hello world!" // (String) содержимое текстового фала 
410 1
}
411 1
</code></pre>
412 36 Troex Nevelin
413 1
h3. edit
414 11 Troex Nevelin
415 11 Troex Nevelin
Сохраняет полученный текст в файл.
416 36 Troex Nevelin
417 1
Аргументы (передаются методом POST):
418 1
* *cmd* : edit
419 1
* *current* : hash директории, в которой сохраняется файл
420 37 Troex Nevelin
* *file* : hash файла
421 36 Troex Nevelin
* *content* : новое содержимое файла
422 1
423 38 Troex Nevelin
Ответ: *file* - объект, аналогичный описывающему файл в секции _cdc_ команды [[Client-Server_Protocol_RU#open|open]]
424 37 Troex Nevelin
<pre><code class="json">
425 37 Troex Nevelin
{
426 37 Troex Nevelin
    "file" : {
427 37 Troex Nevelin
        "name"  : "README.txt",
428 37 Troex Nevelin
        "hash"  : "8d331825ebfbe1ddae14d314bf81a712",
429 37 Troex Nevelin
        "url"   : "http://localhost:8001/~troex/git/elfinder/files/wiki/README.txt",
430 37 Troex Nevelin
        "date"  : "Today 14:25",
431 37 Troex Nevelin
        "mime"  : "text/plain",
432 37 Troex Nevelin
        "size"  : 1171,
433 37 Troex Nevelin
        "read"  : true,
434 1
        "write" : true,
435 1
        "rm"    : true
436 1
    }
437 1
}
438 1
</code></pre>
439 36 Troex Nevelin
440 1
h3. extract
441 1
442 1
Распаковывает архив.
443 36 Troex Nevelin
444 1
Аргументы:
445 1
* *cmd* : extract
446 36 Troex Nevelin
* *current* : hash директории, в которой находится файл
447 1
* *target* : hash файла архива
448 1
449 1
Ответ: [[Client-Server_Protocol_RU#open|open]] с деревом директорий
450 36 Troex Nevelin
451 1
h3. archive
452 1
453 1
Упаковывает директории/файлы в архив.
454 1
455 39 Troex Nevelin
Аргументы:
456 39 Troex Nevelin
* *cmd* : archive
457 31 Troex Nevelin
* *type* : mime-тип создаваемого архива
458 36 Troex Nevelin
* *current* : hash директории, в которой находятся добавляемые в архив директории/файлы
459 31 Troex Nevelin
* *files* : массив хэшей директорий/файлов
460 31 Troex Nevelin
461 31 Troex Nevelin
Ответ: [[Client-Server_Protocol_RU#open|open]], *select* - hash нового архива
462 31 Troex Nevelin
463 31 Troex Nevelin
h3. tmb
464 31 Troex Nevelin
465 31 Troex Nevelin
Фоновая команда. Создает миниатюрки для картинок, не имеющих их. Кол-во создаваемых за раз миниатюрок, указывается в [[Connector_Configuration_RU|конфиге коннектора]] опцией _tmbAtOnce_. По умолчанию - 5.
466 31 Troex Nevelin
467 31 Troex Nevelin
Аргументы:
468 31 Troex Nevelin
* *cmd* : tmb
469 31 Troex Nevelin
* *current* : hash пути к директории, в которой создаем миниатюрки
470 31 Troex Nevelin
471 31 Troex Nevelin
Ответ:
472 31 Troex Nevelin
<pre><code class="json">
473 31 Troex Nevelin
{
474 31 Troex Nevelin
    "current": "b4473c8c08d1d499ecd7112f3398f125", // (String) hash пути к директории, в которой были созданы миниатюрки
475 31 Troex Nevelin
    "images" : {                                   // (Object)
476 31 Troex Nevelin
        "a696323d7fd86513754004ba8bc12967":        // (String) hash пути файла
477 31 Troex Nevelin
            "http://localhost:8001/~troex/git/elfinder/files/.tmb/a696323d7fd86513754004ba8bc12967.png"
478 11 Troex Nevelin
                                                   // (String) URL миниатюрки
479 11 Troex Nevelin
    }, 
480 11 Troex Nevelin
    "tmb": true  // (Boolean) возвращает true если ещё остались картинки для которых не были созданы миниатюрки,
481 11 Troex Nevelin
                 // иначе параметр отсутствует
482 11 Troex Nevelin
}
483 1
</code></pre>
484 36 Troex Nevelin
485 1
h3. resize
486 1
487 1
Изменение размера изображения.
488 36 Troex Nevelin
489 36 Troex Nevelin
Аргументы:
490 36 Troex Nevelin
* *cmd* : resize
491 36 Troex Nevelin
* *current* : hash директории, в которой находится файл
492 1
* *file* : hash пути изображения
493 36 Troex Nevelin
* *width* : новая ширина изображения
494 1
* *height* : новая высота изображения
495 1
496 1
Ответ: [[Client-Server_Protocol_RU#open|open]], *select* - hash пути изображения