Securely Backup MongoDB to Google Drive
Project description
mongogbackup
Secure Mongo DB backups on Google Drive
Installation
$ pip install mongogbackup
Usage
Import
from mongogbackup import MongoConfig, MongoGBackup
Initialization
mongo_config = MongoConfig(
db_name='your_db',
host='localhost',
port=27017,
# optional parameters below
username='root',
password='password',
auth_db='admin'
)
backup_handler =MongoGBackup(
mongoConfig=mongo_config,
credentials_file='path/credentials.json',
key='fernet_key'
)
gdrive = GoogleDriveHandler(
credentials_file='path/credentials.json',
parent_id = target_folder_id,
file_name = name_of_the_file_you_want_to_upload,
num_files = how_many_files_you_want_to_keep_in_the_rotating_file_handler
)
Creating dump
backup_handler.backups.backup(dir='backup_path/dump/')
Compressing the dump
backup_handler.targz.pack(source_path='backup_path/dump/', output_path='filename.tar.gz')
Encrypting the dump
backup_handler.encrypt.encrypt_file('filename.tar.gz', 'destination.file')
Uploading to Google Drive
Add your credentials.json file to your project (you can generate this on Google Cloud Console)
Simple upload to google drive
gdrive.upload_file_to_drive(file_name, parent_id)
Delete all previous files with same name and upload to Google Drive
gdrive.overwrite_and_upload_to_drive(file_name, parent_id)
Upload to Google Drive with a rotating file handler
gdrive.upload_to_drive_with_rfh(file_name, parent_id, num_files)
Restore Backups
Download the backup file from google drive (say: backup.encr)
Decrypt the file
backup_handler.encrypt.decrypt_file('backup.encr', 'filename.tar.gz')
Decompressing the tar-gz dump
backup_handler.targz.unpack(source_path='filename.tar.gz', output_path='backup_dir/dump/')
Restoring the dump
backup_handler.backups.restore(bck_dir='backup_dir/dump/')
Hash Checks
To ensure that your backup file has not been tampered with, you can perform a SHA-256 hash check.
backup_handler.hash.generate_file_hash('source.file')
You can also save the hash into a txt file by executing
backup_handler.hash.save('hash.txt')
or print the hash by executing
print(backup_handler.hash.last_hash())
You can also compare the current generated hash with any other string using
backup_handler.hash.compare_generated('hash-string')
# returns True or False on comparision
Made with ❤️ by DevCom, 2024
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mongogbackup-0.1.1.tar.gz.
File metadata
- Download URL: mongogbackup-0.1.1.tar.gz
- Upload date:
- Size: 20.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a046364de600c421ac3e0440e1eaf09ce709fab76239f0d1ee567fc75d41ddc
|
|
| MD5 |
cbba9c24a8f71642f021181fd2b9751d
|
|
| BLAKE2b-256 |
d30083c9d54e125b1b74a0075aa2417db6c69530986a838cc4929d977dcd86a5
|
File details
Details for the file mongogbackup-0.1.1-py3-none-any.whl.
File metadata
- Download URL: mongogbackup-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f11f91cc7a9e6a6d1f88392a4f3837720769da3c71577acd06373d41d244ab28
|
|
| MD5 |
92610684890c1bd6061e91bef7b43062
|
|
| BLAKE2b-256 |
deda8b13a9f559e7a13631a2d62f2ff43509167e81c81a48163f46623794dbda
|