drobadi
v1.1.3
Published
drobadi: a node tool to backup a given directory onto dropbox
Downloads
28
Readme
drobadi
Dropbox backup directory
A NodeJS tool to
- zip a directory and create backup onto Dropbox,
- list backups,
- download a backup
- or download and unzip a backup.
Command line usage
Setup
install drobadi
npm install drobadi@latest --global
set your preferences
A dropbox application (dropboxAppKey
,dropboxAppSecret
), and long-lived refresh-token (dropboxRefreshToken
) are required.
NB: in order to understand how-to get a `refresh-token, cf dropbox-refresh-token
The old-long-lived access-token (dropboxToken
) are always supported but this method is deprecated and will be removed in futur release.
drobadi setup
(first time only) create a drobadi config file ~/.drobadi
To remove this setup
drobadi unlink
NB: you could create other custom drobadi config files, and choose custom drobadi config file by using DBD_CONFIG_FILE
env.
Show help
drobadi
show actions
Create a backup
drobadi backup <localDirectory> [<myBackup.zip>]
create a remote zip backup from local directory
Example: zip local directory ../tmp/backup/myDir
then upload as dropbox backup /backup/biolo.zip
drobadi backup ../tmp/backup/myDir biolo.zip
This action will success if the target dropbox already exists with the same zip file.
This action will fail if a different target dropbox already exists (use forceBackup
to override it).
backup
is the default dropbox backup target directory and may be changed using options.
Create or override a backup
drobadi forceBackup <localDirectory> [<myBackup.zip>]
List backups
drobadi list
DBD_CONFIG_FILE=./tmp/myDrobadiConfig drobadi list
list remote backups
Download a backup
drobadi download <myBackup.zip> [<localFile.zip>]
download a remote backup into local file
Example: download dropbox file /backup/biolo.zip
as local file ./biolo.zip
drobadi download biolo.zip
Example: download dropbox file /backup/biolo.zip
as local file /tmp/ddd.zip
drobadi download biolo.zip /tmp/ddd.zip
Download and unzip a backup
drobadi downloadAndUnzip <myBackup.zip> [</local/path>]
download a remote backup and unzip it into local directory
Example: download dropbox file /backup/biolo.zip
and unzip it into local directory ./biolo
drobadi downloadAndUnzip biolo.zip ./biolo
DOptions
Drobadi options are
dropboxAppKey
(orDBD_DROPBOX_APP_KEY
env. Default:null
. Required) : dropbox application key.dropboxAppSecret
(orDBD_DROPBOX_APP_SECRET
env. Default:null
. Required) : dropbox application secret.dropboxRefreshToken
(orDBD_DROPBOX_REFRESH_TOKEN
. Default:null
. env. Required) : dropbox application refresh-token.path
(orDBD_PATH
env. Default:backup
) : dropbox target directory that receive backup files.overrideTargetBackup
(orDBD_OVERRIDE_TARGET_BACKUP
env. Default:false
) : override target backup file.
Deprecated option:
dropboxToken
(orDBD_DROPBOX_TOKEN
env. Default:null
. DEPRECATED) : dropbox access-token value,dropboxTokenDisableWarning
(orDBD_DROPBOX_TOKEN_DISABLE_WARNING
env. Default:false
.*) : change-it to disable warning log.
Note that drobadi setup
help you to create a ~/.drobadi
config file.
DOptions precedence: options object, or env value or config file or default value.
Library use
Install dependency
You have to import as dependency
npm install drobadi
Define the requirements, example:
import {Drobadi, DOptions} from "drobadi";
const dOptions = new DOptions({
"dropboxToken": 'My dropbox token is a secret',
"path": "from-drobadi",
"overrideTargetBackup": true
});
let drobadi = new Drobadi();
create a remote backup from local directory
let promiseResult = drobadi.backup(dOptions, "./myData/", "dataBack.zip")
list remote backups
let promiseResult = drobadi.list(dOptions);
Restore remote backup in current directory
let promiseResult = drobadi.download(dOptions, "dataBack.zip")
Restore remote backup in a given local destination
var promiseResult = drobadi.download(dOptions, "dataBack.zip", "/home/user/incomming/restored.zip")
Restore remote backup and unzip it in a given local directory
var promiseResult = drobadi.downloadAndUnzip(dOptions, "dataBack.zip", "/tmp/restoreHere")
NB: you could also have a look at tests : drobadi.test.js
How to contribute
Services or activated bots
| badge | name | description |
|--------|---------------------------------|:-------------------------------------------------------------------------|
| | Github actions | Continuous tests.
| | Github actions | Continuous vulnerability audit.
| | Houndci | JavaScript automated review (configured by .hound.yml
) |