Client-Server Protocol RU

Version 34 (Troex Nevelin, 01.02.2010 03:18)

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