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/
LOGIN
#
You can get the CrushAuth cookie token via a POST with these parameters:command=login&username=user&password=pass&encoded=true
Alternatively just issuing the HTTP BASIC auth header with its normal BASE64 encoded syntax is also valid but can't be tracked to a single session. So its not always desirable even though its convenient.
DOWNLOAD/UPLOAD
#
For file transfer, you can now do a GET or PUT command to download or upload.GET /myfiles/file1.txt HTTP/1.1 Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l
PUT /anotherfolder/file2.txt HTTP/1.1 Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1lThe path is for the user's VFS as configured in the User Manager. It has nothing to do with your server's local filesystem.
RENAME
#
A rename can be done via the MOVE HTTP command, or via a POST with more parameters:MOVE /myfiles/file1.txt HTTP/1.1 Location: http://serverdomain.com/anotherfolder/file3.txt Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1lOr POST:
command=rename&path=/myfiles/&name1=file1.txt&name2=/anotherfolder/file3.txt&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.
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 QWxhZGRpbjpPcGVuU2VzYW1lOr 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
#
Deleting can be done via DELETE HTTP command or via POST with more parameters:DELETE /myfiles/file1.txt HTTP/1.1 Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1lOr POST:
command=delete&names=/anotherfolder/file3.txt&c2f=ABCD
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 QWxhZGRpbjpPcGVuU2VzYW1lOr 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.txtDownload:
curl -u user:pass http://127.0.0.1:8080/KB2.txt -o KB2.txtDelete:
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/
Add new attachment
Only authorized users are allowed to upload new attachments.
«
This particular version was published on 24-Aug-2017 14:25 by Ben Spink.
G’day (anonymous guest)
Log in
JSPWiki