Client-Server Protocol RU

Version 33 (Troex Nevelin, 01.02.2010 03:16)

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 32 Troex Nevelin
<pre><code class="json">
272 32 Troex Nevelin
{
273 32 Troex Nevelin
    // open
274 32 Troex Nevelin
    "cwd"   : {
275 32 Troex Nevelin
        // ...
276 32 Troex Nevelin
    },
277 32 Troex Nevelin
    "cdc"   : [
278 32 Troex Nevelin
        // ...
279 32 Troex Nevelin
    ],
280 32 Troex Nevelin
    "tree"  : {
281 32 Troex Nevelin
        // ...
282 32 Troex Nevelin
    },
283 33 Troex Nevelin
    "select": "ac4b61565950a73395c871f9c3fc7362" // (String) hash новой директории
284 32 Troex Nevelin
}
285 32 Troex Nevelin
</code></pre>
286 30 Troex Nevelin
287 32 Troex Nevelin
288 9 Troex Nevelin
h3. mkfile
289 9 Troex Nevelin
290 1
Создать новый файл.
291 9 Troex Nevelin
292 9 Troex Nevelin
Аргументы:
293 1
* *cmd* : mkfile
294 30 Troex Nevelin
* *current* : hash директории, в которой создаем файл
295 1
* *name* : имя нового файла
296 1
297 30 Troex Nevelin
Ответ: [[Client-Server_Protocol_RU#open|open]] и
298 33 Troex Nevelin
* *select* : hash нового файла
299 9 Troex Nevelin
300 9 Troex Nevelin
h3. rename
301 9 Troex Nevelin
302 30 Troex Nevelin
Переименование директории/файла
303 1
304 9 Troex Nevelin
Аргументы:
305 9 Troex Nevelin
* *cmd* : rename
306 30 Troex Nevelin
* *current* : hash директории, где файл находится
307 30 Troex Nevelin
* *target* : hash директории/файла для переименования
308 30 Troex Nevelin
* *name* : новое имя директории/файла
309 1
310 30 Troex Nevelin
Ответ: [[Client-Server_Protocol_RU#open|open]], если переименовали директорию по open возвращается с деревом директорий
311 30 Troex Nevelin
*select* : hash переименованной директории/файла
312 1
313 1
h3. upload
314 1
315 1
Загрузка файлов
316 1
317 9 Troex Nevelin
Аргументы (передаются методом POST):
318 9 Troex Nevelin
* *cmd* : upload
319 1
* *current* : hash директории, в которую загружаем файлы
320 1
* *files* : массив файлов
321 30 Troex Nevelin
322 30 Troex Nevelin
Ответ:
323 30 Troex Nevelin
324 30 Troex Nevelin
1. Если ни одного файла не удалось загрузить, возвращаем только
325 1
<pre><code class="json">
326 1
{
327 30 Troex Nevelin
    "error" : "Unable to upload files"
328 1
}
329 1
</code></pre>
330 1
331 1
2. Если хотя бы один файл был загружен, ответ [[Client-Server_Protocol_RU#open|open]] и
332 30 Troex Nevelin
<pre><code class="json">
333 30 Troex Nevelin
{
334 30 Troex Nevelin
    // open
335 32 Troex Nevelin
    "select"    : [ "8d331825ebfbe1ddae14d314bf81a712" ], // (Array)  массив hash'ей путей загруженных файлов
336 32 Troex Nevelin
    "error"     : "Some files was not uploaded",          // (String) если не все файлы были загружены
337 32 Troex Nevelin
    "errorData" : {                                       // (Object) инф. о файлах, которые не удалось загрузить
338 32 Troex Nevelin
        "some-file.exe" : "Not allowed file type"         // (String) "имя файла": "ошибка"
339 9 Troex Nevelin
    }
340 1
}
341 30 Troex Nevelin
</code></pre>
342 9 Troex Nevelin
343 9 Troex Nevelin
h3. ping
344 9 Troex Nevelin
345 33 Troex Nevelin
Служебная команда, необходима для исправления бага Safari при загрузке файлов http://www.webmasterworld.com/macintosh_webmaster/3300569.htm
346 1
347 1
Аргументы:
348 32 Troex Nevelin
* *cmd* : ping
349 1
350 1
Ответ: отсылает пустую страницу с заголовком @Connection: close@
351 1
352 1
h3. paste
353 9 Troex Nevelin
354 1
Копирует или перемещает директории/файлы
355 1
356 1
Аргументы:
357 9 Troex Nevelin
* *cmd* : paste
358 32 Troex Nevelin
* *src* : hash директории, из которой перемещаем/копируем файлы
359 32 Troex Nevelin
* *dst* : hash директории, в которую перемещаем/копируем файлы
360 32 Troex Nevelin
* *files* : массив hash'ей копируемых директорий/файлов
361 32 Troex Nevelin
* *cut* : true если файлы перемещаются, false или аргумент отсутствует если файлы копируются
362 9 Troex Nevelin
363 1
Ответ:
364 32 Troex Nevelin
1. Если не удалось скопировать/переместить хотя бы один файл:
365 32 Troex Nevelin
* *error* : сообщение об ошибке
366 9 Troex Nevelin
367 32 Troex Nevelin
2. Если копирование/перемещение прошло успешно, возвращает [[Client-Server_Protocol_RU#open|open]] с деревом директорий.
368 1
369 32 Troex Nevelin
*Внимание!* Команда должна прекращать копирование при первой же ошибке. Не допускается перезапись файлов/директорий с одинаковыми именами.
370 11 Troex Nevelin
371 11 Troex Nevelin
h3. rm
372 1
373 1
Удаление файлов и рекурсивное удаление директорий
374 1
375 1
Аргументы:
376 1
* *cmd* : rm
377 28 Troex Nevelin
* *current* : hash папки, из которой удалем файлы
378 1
* *rm* : массив hash'ей удаляемых папок/файлов
379 11 Troex Nevelin
380 1
Ответ:
381 1
Всегда такой же как у open, плюс
382 1
tree : дерево директорий
383 1
error : "Unable to remove file", //если была ошибка удаления
384 11 Troex Nevelin
errorData : {} //если была ошибка удаления - инф о файлах, который не удалось удалить (аналогично ошибке в upload)
385 11 Troex Nevelin
386 11 Troex Nevelin
h3. duplicate
387 1
388 1
Создает копию папки/файла. Имя копии формируется следующим образом: базовое_имя_файла copy+порядковый номер.расширение(если есть)
389 1
390 1
Аргументы:
391 1
* *cmd* : duplicate
392 11 Troex Nevelin
* *current* : hash папки, в которой создаем дубликат
393 1
* *file* : hash папки/файла, для которого создаем дубликат
394 1
395 1
Ответ:
396 1
tree : дерево директорий, // если создали дубликат для папки
397 11 Troex Nevelin
select : hash пути дубликата
398 11 Troex Nevelin
399 11 Troex Nevelin
h3. read
400 1
401 1
возвращает содержимое текстового файла.
402 1
403 1
Аргументы:
404 11 Troex Nevelin
* *cmd* : edit
405 1
* *current* : hash папки, в которой читаем файл
406 1
* *file* : hash файла
407 1
408 1
Ответ:
409 11 Troex Nevelin
content : содержимое текстового файла
410 11 Troex Nevelin
411 11 Troex Nevelin
h3. edit
412 11 Troex Nevelin
413 1
сохраняет текст в файл
414 1
415 1
Аргументы (передаются методом POST):
416 1
* *cmd* : edit
417 1
* *current* : hash папки, в которой сохраняем файл
418 1
* *file* : hash файла
419 1
* *content* : новое содержимое файла
420 1
421 1
Ответ:
422 1
file : {// объект, аналогичный объекту, описывающему файл в cdc команды open
423 1
  'name'  : Имя файла,
424 1
  'hash'  : hash пути,
425 1
  'mime'  : mime-тип
426 1
  'date'  : отформатированая дата изменения файла, 
427 1
  'size'  : размер,
428 11 Troex Nevelin
  'read'  : права на чтение,
429 11 Troex Nevelin
  'write' : права на запись,
430 1
  'rm'    : права для удаления,
431 1
  'resize' : true (только для картинок, которые можно ресайзить)
432 1
}
433 11 Troex Nevelin
434 11 Troex Nevelin
h3. extract
435 1
436 1
распаковывает архив
437 1
438 1
Аргументы:
439 1
* *cmd* : extract
440 1
* *current* : hash папки, в которой находится файл
441 1
* *target* : hash файла архива
442 1
443 1
Ответ:
444 1
Такой же как у команды open, плюс
445 1
tree : дерево директорий
446 1
447 1
h3. archive
448 1
449 1
упаковывает папки/файлы в архив
450 1
451 1
Аргументы:
452 1
* *cmd* : archive
453 1
* *type* : mime-тип создаваемого архива
454 1
* *current* : hash папки, в которой находятся добавляемые в архив папки/файлы
455 1
* *files* : массив хэшей папок/файлов
456 1
457 11 Troex Nevelin
Ответ:
458 1
Такой же как у команды open, плюс
459 31 Troex Nevelin
* *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 31 Troex Nevelin
                                                   // (String) URL миниатюрки
477 31 Troex Nevelin
    }, 
478 31 Troex Nevelin
    "tmb": true  // (Boolean) возвращает true если ещё остались картинки для которых не были созданы миниатюрки,
479 31 Troex Nevelin
                 // иначе параметр отсутствует
480 31 Troex Nevelin
}
481 11 Troex Nevelin
</code></pre>
482 11 Troex Nevelin
483 11 Troex Nevelin
h3. resize
484 11 Troex Nevelin
485 11 Troex Nevelin
изменяет размер изображения
486 1
487 1
Аргументы:
488 1
* *cmd* : resize
489 1
* *current* : hash папки, в которой находится файл
490 1
* *file* : hash пути картинки
491 1
* *width* : новая ширина картинки
492 1
* *height* : новая высота картинки
493 1
494 1
Ответ:
495 1
Такой же как у команды open