0.0.1 • Published 10 years ago

kloudless-meteor v0.0.1

Weekly downloads
1
License
-
Repository
-
Last release
10 years ago

#Kloudless Node API

##Installation

npm install git://github.com/Kloudless/kloudless-node

##Node-specific docs and examples

Normal API docs available here: https://developers.kloudless.com/docs

API methods are called in the scheme of...

kloudless.<resource>.<method>(<data-json>, <callback>);

We'll start with a couple of examples:

var async = require('async'); // for clean demonstration

var kloudless = require('kloudless')
                       ('your-api-key-goes-here!');
var fs = require('fs');

var accountId;
var fileId;

async.series([
function(cb) {

    // to get the base account data
    kloudless.accounts.base({}, // needs no data passed in
        function(err,res){
            if (err) { console.log("Error getting the account data: "+err); }
            else {
                // assuming you authorized at least one service (Dropbox, Google Drive, etc.)
                console.log("We got the account data!");
                accountId = res["objects"][0]["id"];
                cb();
            }
        }
    );

},
function(cb) {
    // create the fs.ReadStream to pass in to files.upload()
    var filestream = fs.createReadStream('./test.txt');

    // to upload a file to the account we just got data for
    kloudless.files.upload(
        {"name": "test.txt",
        "account_id": accountId,
        "parent_id": "root",
        "file": filestream,
        // all API calls can specify URL query parameters by defining "queryParams"
        "queryParams": {
                "overwrite": "true"
            }
        },
        function(err, res) {
            if (err) {
                console.log("Error uploading file: "+err);
                cb(err);
            } else {
                console.log("We uploaded the file!");
                fileId = res['id'];
                cb();
            }
        }
    );
},
function(cb){
    // and now we're going to download that file we just uploaded
    kloudless.files.contents(
        {"account_id": accountId,
        "file_id": fileId},
        function(err, filestream) {
            if (err) {
                console.log("Files contents: "+err);
            } else {
                var filecontents = '';
                console.log("got the filestream:");
                filestream.on('data',function(chunk){
                    console.log("reading in data chunk...");
                    console.log(chunk);
                    filecontents += chunk;
                });
                filestream.on('end',function(){
                    console.log("finished reading file!");
                    console.log(filecontents);
                    cb();
                });
            }
        }
    );
}
]);

##Resources and Methods

All API calls can specify URL query parameters by defining "queryParams". See file upload example above.


###accounts.base() No required parameters for accounts.base()


###accounts.get() Required params: account_id


###accounts.delete() Required params: account_id


###files.upload() Required params: account_id, parent_id, file, name
"file" should be an instance of Buffer. You can create a Buffer like this: var your_var_name = new Buffer("the file contents go here") "name" should be the name of the file after it's uploaded.


###files.get() Required params: account_id, file_id Gets metadata for the file. Not for downloading. If you want to download, use contents().


###files.delete() Required params: account_id, file_id


###files.move() Required params: account_id, file_id, parent_id
"parent_id" should be the ID of the folder you wish to move the file to.


###files.rename() Required params: account_id, file_id, name
This is a vanity method, files can also be renamed using the move() method by including the desired "name" parameter.


###files.contents() Required params: account_id, file_id Returns a FileStream. See code example for files.contents() above. Example also in test.js.


###folders.create() Required params: account_id, folder_id, name


###folders.get() Required params: account_id, folder_id


###folders.delete() Required params: account_id, folder_id


###folders.move() Required params: account_id, folder_id, parent_id


###folders.rename() Required params: account_id, folder_id, name
This is a vanity function just like files.rename(). folders.move() can be used to rename as well.


###folders.contents() Required params: account_id, folder_id


###links.base() Required params: account_id


###links.create() Required params: account_id, file_id
"file_id" should be the file you want to link to.


###links.get() Required params: account_id, link_id


###links.update() Required params: account_id, link_id
Optional parameters: "active": enables the link if true, disables the link if false. "password": set a password for the link. "expiration": set an expiration date for the link. Can be an instance of Date() or a number (in milliseconds).


###links.delete() Required params: account_id, link_id