<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Tutorial: Getting started - Documentation</title>

    <script src="scripts/prettify/prettify.js"></script>
    <script src="scripts/prettify/lang-css.js"></script>
    <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link type="text/css" rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>

<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
  <div class="navicon"></div>
</label>

<label for="nav-trigger" class="overlay"></label>

<nav>
    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="ArchiveProcessor.html">ArchiveProcessor</a><ul class='methods'><li data-type='method'><a href="ArchiveProcessor.html#process">process</a></li></ul></li><li><a href="BackupProcessor.html">BackupProcessor</a><ul class='methods'><li data-type='method'><a href="BackupProcessor.html#process">process</a></li></ul></li><li><a href="DropboxArchive.html">DropboxArchive</a><ul class='methods'><li data-type='method'><a href="DropboxArchive.html#upload">upload</a></li></ul></li><li><a href="DropboxBackup.html">DropboxBackup</a><ul class='methods'><li data-type='method'><a href="DropboxBackup.html#run">run</a></li><li data-type='method'><a href="DropboxBackup.html#use">use</a></li></ul></li><li><a href="ProcessorContext.html">ProcessorContext</a><ul class='methods'><li data-type='method'><a href="ProcessorContext.html#error">error</a></li><li data-type='method'><a href="ProcessorContext.html#log">log</a></li></ul></li><li><a href="ResetProcessor.html">ResetProcessor</a><ul class='methods'><li data-type='method'><a href="ResetProcessor.html#process">process</a></li></ul></li><li><a href="TemporaryFolderProcessor.html">TemporaryFolderProcessor</a><ul class='methods'><li data-type='method'><a href="TemporaryFolderProcessor.html#process">process</a></li></ul></li><li><a href="UploadOnDemandProcessor.html">UploadOnDemandProcessor</a><ul class='methods'><li data-type='method'><a href="UploadOnDemandProcessor.html#process">process</a></li></ul></li><li><a href="UploadOnScheduleProcessor.html">UploadOnScheduleProcessor</a><ul class='methods'><li data-type='method'><a href="UploadOnScheduleProcessor.html#process">process</a></li></ul></li><li><a href="ZipArchiveProcessor.html">ZipArchiveProcessor</a><ul class='methods'><li data-type='method'><a href="ZipArchiveProcessor.html#process">process</a></li></ul></li></ul><h3>Tutorials</h3><ul><li><a href="tutorial-extending-with-modules.html">Extending with modules</a></li><li><a href="tutorial-getting-started.html">Getting started</a></li></ul>
</nav>

<div id="main">
    
    <h1 class="page-title">Tutorial: Getting started</h1>
    

    <section>

<header>
    

    <h2>Getting started</h2>
</header>

<article>
    <p>So, here is a quick start<br />
dropbox-backup uses the <a href="https://www.npmjs.com/package/archiver" target="_blank">archiver</a> module for archiving the output file and exposes its functionality to the end user.</p>

<p>Reference its api documentation at <a href="http://archiverjs.com/docs/" target="_blank">http://archiverjs.com/docs/</a></p>

<h4>Processing as a scheduled task</h4>
<p>This will upload the archived file in daily/weekly/monthly folders skipping the upload if its not its time yet.<br />
It keeps the last 3 uploads in each folder so that if needed to rollback further ago in the timeline, an older backup from the weekly/monthly folders can be found  
</p>
<pre class="prettyprint">

    var <a href="DropboxBackup.html">DropboxBackup</a> = require('dropbox-backup');
    var backup = new <a href="DropboxBackup.html">DropboxBackup</a>({
        key: "DROPBOXKEY",
        secret: "DROPBOXSECRET",
        token: "DROPBOXTOKEN"
    });

    backup.run(function (x) {
        // add a directory to the archive
        x.archive.directory('./lib', 'lib');

        // add a file to the archive
        x.archive.file('file.txt', { name: 'lib/file.txt' });

        // upload the archive to dropbox. 
        // this takes an optional callback function should you need to continue
        x.<a href="DropboxArchive.html#upload">upload</a>(function (err) {
            if (err)
                throw err;
            else
                console.log('completed');
        });
    });
      
</pre>

<h4>Processing on demand</h4>
<p>Should you want to run on demand the backup process, all it needs is a name for the file.<br />
In this case, the uploaded files in the root, are not being removed in favor of newer uploads.
</p>
<pre class="prettyprint">

    var <a href="DropboxBackup.html">DropboxBackup</a> = require('dropbox-backup');
    var backup = new <a href="DropboxBackup.html">DropboxBackup</a>({
        key: "DROPBOXKEY",
        secret: "DROPBOXSECRET",
        token: "DROPBOXTOKEN"
    });

    backup.run('filename', function (x) {
        ...
    });
      
</pre>
</article>

</section>

</div>

<br class="clear">

<footer>
    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.0</a> using the Minami theme.
</footer>

<script>prettyPrint();</script>
<script src="scripts/linenumber.js"></script>
</body>
</html>