At line 1 changed one line |
CrushFTP supports REST style operations for file transfer. All you need is an auth header with BASIC auth, or a logged in cookie token.\\ |
CrushFTP supports REST style operations for file transfer. All you need is an auth header with BASIC auth, or a logged in cookie token. If issuing a POST command, and using the CrushAuth cookie, you must also specify the c2f parameter. The c2f is the last 4 characters of the CrushAuth cookie.\\ |
\\ |
The base URL on all of these is simply http://domain.com/\\ |
At line 5 added one line |
!!LOGIN\\ |
At line 13 added one line |
!!DOWNLOAD/UPLOAD\\ |
At line 12 changed 2 lines |
GET /myfiles/file1.txt |
PUT /anotherfolder/file2.txt |
GET /myfiles/file1.txt HTTP/1.1 |
Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l |
At line 15 changed one line |
|
{{{ |
PUT /anotherfolder/file2.txt HTTP/1.1 |
Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l |
}}} |
At line 25 added one line |
!!RENAME\\ |
At line 20 changed one line |
MOVE /myfiles/file1.txt |
MOVE /myfiles/file1.txt HTTP/1.1 |
At line 30 added one line |
Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l |
At line 25 changed one line |
command=rename&path=/myfiles/&name1=file1.txt&name2=/anotherfolder/file3.txt |
command=rename&path=/myfiles/&name1=file1.txt&name2=/anotherfolder/file3.txt&c2f=ABCD |
At line 39 added 14 lines |
!!MAKEDIR\\ |
A make directory can be done via the MKCOL HTTP command, or via a POST with more parameters:\\ |
{{{ |
MKCOL /myfiles2/ HTTP/1.1 |
Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l |
}}} |
Or POST:\\ |
{{{ |
command=makedir&path=/myfiles2/&c2f=ABCD |
}}} |
* This is the same command issued via our WebInterface, so you can always inspect with Chrome for other commands on how we do it.\\ |
\\ |
\\ |
!!DELETE\\ |
At line 32 changed one line |
DELETE /myfiles/file1.txt |
DELETE /myfiles/file1.txt HTTP/1.1 |
Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l |
At line 36 changed one line |
command=delete&names=/anotherfolder/file3.txt |
command=delete&names=/anotherfolder/file3.txt&c2f=ABCD |
At line 62 added 69 lines |
\\ |
\\ |
!!LIST\\ |
Directory listings have no REST command, so POST must be used:\\ |
{{{ |
command=getXMLListing&path=/anotherfolder/&format=stat_dmz&c2f=ABCD |
}}} |
\\ |
*Format can be one of these types:json,jsonobj,stat,stat_dmz. stat_dmz is the most commonly used format type. It contains some summary info about the current directory's permissions followed by the listing for that directory.\\ |
\\ |
\\ |
!!STAT\\ |
Getting info about a single file can be done with HTTP HEAD, or more info from STAT:\\ |
{{{ |
HEAD /myfolder/file1.txt HTTP/1.1 |
Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l |
}}} |
Or POST:\\ |
{{{ |
command=stat&path=/anotherfolder/file1.txt&format=stat_dmz&c2f=ABCD |
}}} |
\\ |
*Format can be one of these types:json,jsonobj,stat,stat_dmz. stat_dmz is the most commonly used format type. It contains some summary info about the current directory's permissions followed by the listing for that directory.\\ |
\\ |
\\ |
!!UPLOAD MultiPart\\ |
Multipart form uploading is also possible, but far more complex of a topic. You should already be familiar with how multipart works. The parameters for uploading are:\\ |
{{{ |
command=STOR |
alt_name=file4.txt |
uploadPath=/anotherfolder/ |
start_resume_loc=0. ***OPTIONAL |
Last-Modified=milliseocndtimestamp ***OPTIONAL |
c2f=ABCD |
filenameobjectdata |
}}} |
\\ |
\\ |
!!LOGOUT\\ |
A logged in session with a CrushAuth cookie can be logged out so anything pending the logout will be triggered.\\ |
{{{ |
command=logout&c2f=ABCD |
}}} |
!!!EXAMPLES\\ |
\\ |
Upload a file:\\ |
{{{ |
curl -T KB2.txt -u user:pass http://127.0.0.1:8080/KB2.txt |
}}} |
Download:\\ |
{{{ |
curl -u user:pass http://127.0.0.1:8080/KB2.txt -o KB2.txt |
}}} |
Delete:\\ |
{{{ |
curl --data "command=delete&names=/KB2.txt" -u user:pass http://127.0.0.1:8080/ |
}}} |
Rename:\\ |
{{{ |
curl --data "command=rename&path=/&name1=KB2.txt&name2=/KB3.txt" -u user:pass http://127.0.0.1:8080/ |
}}} |
MakeDir:\\ |
{{{ |
curl --data "command=makedir&path=/myfiles2/" -u user:pass http://127.0.0.1:8080/ |
}}} |
List:\\ |
{{{ |
curl --data "command=getXMLListing&path=/&format=jsonobj" -u user:pass http://127.0.0.1:8080/ |
}}} |