Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

s3-mongo-backup

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

s3-mongo-backup

Backup and Upload MongoDB Databases to S3

  • 2.0.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
71
increased by4.41%
Maintainers
1
Weekly downloads
 
Created
Source

s3-mongo-backup

This Module Helps in automating mongodb database Backups and uploading them to AWS S3.

Features

  • Supports Promises
  • Uploads Backups to S3
  • Uses GZip Compression to reduce Backup Size

Usage

Import

const MBackup = require('s3-mongo-backup');

Create a configuration Object

var backupConfig = {
   mongodb: "mongodb://username:password@localhost:27017", // MongoDB Connection URI 
    s3: {
        accessKey: "",  //AccessKey
        secretKey: "",  //SecretKey
        region: "",     //S3 Bucket Region
        accessPerm: "private", //S3 Bucket Privacy, Since, You'll be storing Database, Private is HIGHLY Recommended
        bucketName: "" //Bucket Name
    },
    keepLocalBackups: false,  //If true, It'll create a folder in project root with database's name and store backups in it and if it's false, It'll use temporary directory of OS
    noOfLocalBackups: 5, //This will only keep the most recent 5 backups and delete all older backups from local backup directory
    timezoneOffset: 300 //Timezone, It is assumed to be in hours if less than 16 and in minutes otherwise
}

Or 

var backupConfig = {
    mongodb: {
        "database": "freecodecamp",
        "host": "localhost",
        "username": "admin",
        "password": "password",
        "port": 27017
    },   
    s3: {
        accessKey: "",  //AccessKey
        secretKey: "",  //SecretKey
        region: "",     //S3 Bucket Region
        accessPerm: "private", //S3 Bucket Privacy, Since, You'll be storing Database, Private is HIGHLY Recommended
        bucketName: "" //Bucket Name
    },
    keepLocalBackups: false,  //If true, It'll create a folder in project root with database's name and store backups in it and if it's false, It'll use temporary directory of OS
    noOfLocalBackups: 5, //This will only keep the most recent 5 backups and delete all older backups from local backup directory
    timezoneOffset: 300 //Timezone, It is assumed to be in hours if less than 16 and in minutes otherwise
}

Call the Function and provide Configuration Object to it.

MBackup(backupConfig)
  .then(
    onResolve => {
    // When everything was successful
      console.log(onResolve);
}
    onReject => {
    // When Anything goes wrong!
      console.log(onReject);
});

See examples directory for more examples

Timezone offset's Purpose

Database zip files are stored in format {database_name}_{YYYY-MM-DDTHH:mm:ss}. Here, If you don't provide a Timezone offset, It'll assume UTC timezone and name all the backups accordingly. Now, If something goes wrong at "2:00 PM" in your timezone and you need to restore a backup made at "1:00 PM" in your timezone, You'll have to change UTC time to your time and then see which backup you have to restore.

But If you provide a timezone of where ever you live, You can immdiately recognise which backup can be useful.

To see how to provide Timezone offset, Please refer to moment#utcOffset

License

MIT

Changelog

2.0.0 -> Uses MongoDB Connection URI directly, instead of asking for individual values of username, database name, password and database host.

NOTE

  1. This module uses mongodump to create backup of database, You need to have it installed on the machine on which you are using this module.

  2. To restore the generated backups

    mongorestore --host localhost --port=27017 --gzip --archive=<path to backup.gz>

Keywords

FAQs

Package last updated on 14 Oct 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc