File API
The file API enables web clients to read and write files at arbitrary VFS locations.
API URL:
/api/file
Methods:
GET
– read filePOST
– write file
Parameters:
path
– the full path to the filecontent
– the new file content onPOST
Output:
HTTP status: 200 (OK) or 400 (Error)
HTTP body: file content on
GET
or error message
On writing, missing directories along the path will be created automatically.
Usage Example
The API can be accessed easily in the web frontend with the jQuery AJAX methods:
// Write object JSON encoded into file:
var json = JSON.stringify(object);
$.post("/api/file", { "path": "/sd/mystore/file1", "content": json })
.done(function() {
confirmdialog('Saved', '<p>File has been saved.</p>', ["OK"], 2);
})
.fail(function(jqXHR) {
confirmdialog('Save failed', jqXHR.responseText, ["OK"]);
});
// Read JSON encoded object from file:
$.get("/api/file", { "path": "/sd/mystore/file1" })
.done(function(responseText) {
var object = JSON.parse(responseText);
// … process object …
})
.fail(function(jqXHR) {
confirmdialog('Load failed', jqXHR.responseText, ["OK"]);
});
External Access
From external clients, the API can be used by either registering a session cookie or by
supplying the apikey
parameter (as explained in the general authorization overview).
Read example:
curl "http://192.168.4.1/api/file?apikey=password&path=/sd/mystore/file1"
Write example:
curl "http://192.168.4.1/api/file" -d 'apikey=password' \
-d 'path=/sd/mystore/file1' --data-urlencode 'content@localfile'