npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@d0whc3r/node-gdrive

v3.4.1

Published

Utility to manipulate google drive using nodejs. It could upload content to google drive and it could be used as backup service.

Downloads

78

Readme

:floppy_disk: Node gdrive

Utility to manipulate google drive using nodejs. It could upload content to google drive and it could be used as backup service.

:eyes: Project status

pipeline status codecov Codacy Badge

Quality Gate Status Maintainability Rating Security Rating Bugs Vulnerabilities

dependencies npm version

FOSSA Status

:key: Create credentials and token files

To get credentials.json file you need to visit:

Then click ENABLE THE DRIVE API and click DOWNLOAD CLIENT CONFIGURATION

This will download credentials.json file, you can save it in secrets folder in the project. Now you need to generate token.json file, to do this you need to execute any command to access your google-drive, for example:

:boat: Using docker

Then you could execute a simple command to generate token.json:

Be careful to copy credentials.json into $PWD/secrets path

docker run --rm -it -v $PWD/secrets:/app/secrets/ d0whc3r/gdrive -l

:pencil: Using downloaded project

First you need to download project from github using:

git clone https://github.com/d0whc3r/node-gdrive.git
cd node-gdrive
yarn install

Then you could execute a simple command to generate token.json:

yarn cli -l

:beginner: Next step

Using docker or project files the -l command is for listing existing files in google-drive

If credentials.json is present but token.json is missing this last file will be generated showing an url into terminal output, you need to enter that url and validate all needed permisions, then a token will be shown in your web browser, this token need to be pasted in terminal.

By default this software check for credentials (and token) file in folder secrets but it could be changed using environment variables:

  • CREDENTIALS_FILE: File with credentials (credentials.json)
  • TOKEN_FILE: File with token, generated using credentials (token.json)

:boat: Docker usage

You could use cli app in docker

:rowboat: Build docker image

docker build -t gdrive .

:checkered_flag: Run cli commands inside docker

docker run --rm gdrive --help

To make docker image work properly you need to indicate where credentials and token are located

docker run --rm -v $PWD/secrets:/app/secrets:ro gdrive -l

:checkered_flag: Cli help output

Using docker image from hub.docker.com

docker run --rm d0whc3r/gdrive --help
Help for gdrive

  Usage of npm gdrive in command line. 

Options

  -l, --list                                     List all files and folders                                                    
  -b, --backup file*                             Backup files                                                                  
  -z, --zip zipname.zip                          Zip backup files                                                              
  -r, --replace                                  Replace files if already exists when backup upload                            
  -c, --create                                   Create destination upload folder                                              
  -f, --folder foldername                        Folder name to upload file/s                                                  
  -d, --delete foldername=duration OR duration   Clean files older than duration in foldername                                 
  -m, --mysql                                    Mysql backup using environment variables to connect mysql server              
                                                 ($MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_DATABASE, $MYSQL_HOST, $MYSQL_PORT)     
  -h, --help                                     Print this usage guide.                                                       

Examples

  1. List files.                                                                      $ gdrive -l                                                   
  2. Backup multiple files to "backupFolder" folder.                                  $ gdrive -b src/index.ts -b images/logo.png -f backupFolder   
  3. Backup files using wildcard to "backup" folder.                                  $ gdrive -b src/* -b images/* -f backup                       
  4. Backup files using wildcard and zip into "zipped" folder folder will be          $ gdrive -b src/* -b images/* -z -f zipped -c             
  created if it doesn't exists.                                                                                                                     
  5. Backup files using wildcard and zip using "allfiles.zip" as filename into        $ gdrive -b src/* -b images/* -z allfiles.zip -f zipped -c -r 
  "zipped" folder folder will be created if it doesn't exists and zipfile will be                                                                   
  replaced if it exists                                                                                                                             
  6. Delete files in "uploads" folder older than 2days and files in "monthly"         $ gdrive -d uploads=2d -d monthly=1M                          
  folder older than 1month                                                                                                                          
  7. Delete files in "uploads" folder older than 1minute                              $ gdrive -f uploads -d 1m                                     
  8. Generate mysql dump file zip it and upload to "mysql-backup" folder              $ gdrive -f mysql-backup -m -z   

License

FOSSA Status