Use this light-weight JS library with a promise based interface for seaemless communication with your ownCloud instance.
Supports both Node.JS and browser JS.
Install
$ npm install js-owncloud-client
Usage
Node.JS
var owncloud = ;var oc = '*owncloud instance URL*'; // Loginoc; // Share File With Linkocshares; // List all filesocfiles;
Browser
All Methods Available
General
var owncloud = ;var oc = '*owncloud instance URL*';
Method | Code |
---|---|
setInstance | oc.setInstance(instance) |
login | oc.login(username, password) |
getConfig | oc.getConfig() |
getVersion | oc.getVersion() |
getCapabilities | oc.getCapabilities() |
Files Management
var owncloud = ;var oc = '*owncloud instance URL*';
Method | Code |
---|---|
list | oc.files.list(/path/to/file/folder, depth) |
getFileContents | oc.files.getFileContents(path/to/file/folder) |
putFileContents | oc.files.putFileContents(path/to/file, contents) |
mkdir | oc.files.mkdir(path/to/folder) |
createFolder | oc.files.createFolder(path/to/folder) |
delete | oc.files.delete(path/to/file/folder) |
fileInfo | oc.files.fileInfo(path/to/file/folder) |
getFile | oc.files.getFile(remotePath, localPath) |
getDirectoryAsZip | oc.files.getDirectoryAsZip(remotePath, localPath) |
putFile | oc.files.putFile(remotePath, localPath) |
putDirectory | oc.files.putDirectory(remotePath, localPath) |
move | oc.files.move(source, target) |
copy | oc.files.copy(source, target) |
Apps Management
var owncloud = ;var oc = '*owncloud instance URL*';
Method | Code |
---|---|
getApps | oc.apps.getApps() |
getAttribute | oc.apps.getAttribute(app, key) |
setAttribute | oc.apps.setAttribute(app, key, value) |
deleteAttribute | oc.apps.deleteAttribute(app, key) |
enableApp | oc.apps.enableApp(appName) |
disableApp | oc.apps.disableApp(appName) |
Group Management
var owncloud = ;var oc = '*owncloud instance URL*';
Method | Code |
---|---|
createGroup | oc.groups.createGroup(groupName) |
deleteGroup | oc.groups.deleteGroup(groupName) |
getGroups | oc.groups.getGroups() |
getGroupMembers | oc.groups.getGroupMembers(groupName) |
groupExists | oc.groups.groupExists(groupName) |
Share Management
var owncloud = ;var oc = '*owncloud instance URL*';
Method | Code |
---|---|
shareFileWithLink | oc.shares.shareFileWithLink(path, {perms: perms, publicUpload: publicUpload, password: password}) |
updateShare | oc.shares.updateShare(shareId, {perms: perms, publicUpload: publicUpload, password: password}) |
shareFileWithUser | oc.shares.shareFileWithUser(path, username, {perms: perms, remoteUser: remoteUser }) |
shareFileWithGroup | oc.shares.shareFileWithGroup(path, groupname, {perms: perms }) |
getShares | oc.shares.getShares() |
isShared | oc.shares.isShared(path/to/file/folder) |
getShare | oc.shares.getShare(shareId) |
listOpenRemoteShare | oc.shares.listOpenRemoteShare() |
acceptRemoteShare | oc.shares.acceptRemoteShare(shareId) |
declineRemoteShare | oc.shares.declineRemoteShare(shareId) |
deleteShare | oc.shares.deleteShare(shareId) |
User Management
var owncloud = ;var oc = '*owncloud instance URL*';
Method | Code |
---|---|
createUser | oc.users.createUser(username, password) |
deleteUser | oc.users.deleteUser(username) |
searchUsers | oc.users.searchUsers(searchKey) |
userExists | oc.users.userExists(username) |
getUsers | oc.users.getUsers() |
setUserAttribute | oc.users.setUserAttribute(username, key, value) |
addUserToGroup | oc.users.addUserToGroup(username, groupName) |
getUserGroups | oc.users.getUserGroups(username) |
userIsInGroup | oc.users.userIsInGroup(username, groupName) |
getUser | oc.users.getUser(username) |
removeUserFromGroup | oc.users.removeUserFromGroup(username, groupName) |
addUserToSubadminGroup | oc.users.addUserToSubadminGroup(username, groupName) |
getUserSubadminGroups | oc.users.getUserSubadminGroups(username) |
userIsInSubadminGroup | oc.users.userIsInSubadminGroup(username, groupName) |
Building the Documentation
Swagger Documentation
Stuck? Just type this to see all the above available methods live in action in your browser!
$ cd node_modules/js-owncloud-client/
$ make swagger
If you open the link showed by running the above command, you will see something like this :
Here, you can click on any method and type in values, to experiment with the methods in the browser itself!
Now isn't that cool? 😉
JSDocs
To build the jsdocs, type this command and follow the instructions on the terminal :
$ cd node_modules/js-owncloud-client/
$ make jsdocs
Unit tests
The following command will run all unit tests. Before running the command, make sure you have edited the owncloud/test/config.json
file accordingly.
$ cd node_modules/js-owncloud-client/
$ make test