All Projects → HolySheet → Holysheet

HolySheet / Holysheet

Licence: mit
A program to store arbitrary files in Google Sheets

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Holysheet

Googlesheets4
Google Spreadsheets R API (reboot of the googlesheets package)
Stars: ✭ 232 (+293.22%)
Mutual labels:  google-sheets, google-drive
Fantasy Football Metrics Weekly Report
Command line application to create weekly reports (containing stats, metrics, and rankings) for Fantasy Football leagues on the following platforms: Yahoo, Fleaflicker, Sleeper, ESPN.
Stars: ✭ 62 (+5.08%)
Mutual labels:  hacktoberfest, google-drive
Plexdrive
Plexdrive mounts your Google Drive FUSE filesystem (optimized for media playback)
Stars: ✭ 1,324 (+2144.07%)
Mutual labels:  hacktoberfest, google-drive
code
Google Apps Script - Code Snippets 👩🏻‍💻
Stars: ✭ 108 (+83.05%)
Mutual labels:  google-drive, google-sheets
garmdown
Download Garmin Connect Data
Stars: ✭ 14 (-76.27%)
Mutual labels:  google-drive, google-sheets
Stein
Use Google Sheets as your no-setup database
Stars: ✭ 726 (+1130.51%)
Mutual labels:  google-sheets, hacktoberfest
PasswordKeeper
Web-app to help you securely store your encrypted passwords in your Google Drive.
Stars: ✭ 43 (-27.12%)
Mutual labels:  google-drive, google-sheets
Googlesheets
Google Spreadsheets R API
Stars: ✭ 771 (+1206.78%)
Mutual labels:  google-sheets, google-drive
Fakeiteasy
The easy mocking library for .NET
Stars: ✭ 1,092 (+1750.85%)
Mutual labels:  hacktoberfest
Esp8266 deauther
Affordable WiFi hacking platform for testing and learning
Stars: ✭ 9,312 (+15683.05%)
Mutual labels:  hacktoberfest
Vscode Bcdn
A Plugin for easy bootstrap markup and template
Stars: ✭ 58 (-1.69%)
Mutual labels:  hacktoberfest
Web
Grow Open Source
Stars: ✭ 1,097 (+1759.32%)
Mutual labels:  hacktoberfest
Vulcan
🌋 A toolkit to quickly build apps with React, GraphQL & Meteor
Stars: ✭ 8,027 (+13505.08%)
Mutual labels:  hacktoberfest
Mattermost Plugin Jira
JIRA plugin for Mattermost 🔌
Stars: ✭ 58 (-1.69%)
Mutual labels:  hacktoberfest
Webtorrent Desktop
❤️ Streaming torrent app for Mac, Windows, and Linux
Stars: ✭ 8,587 (+14454.24%)
Mutual labels:  hacktoberfest
Openfoodfacts Dart
Open Food Facts API Wrapper
Stars: ✭ 57 (-3.39%)
Mutual labels:  hacktoberfest
Jquery Floating Social Share
Social media share buttons with counters.
Stars: ✭ 57 (-3.39%)
Mutual labels:  hacktoberfest
Googledriveuploadtool
A tool for Windows to upload and manage files in Google Drive. It resumes uploads in case of an error or failure. Perfect for uploading large files or if your connection is unstable.
Stars: ✭ 58 (-1.69%)
Mutual labels:  google-drive
Django Cms
The easy-to-use and developer-friendly enterprise CMS powered by Django
Stars: ✭ 8,522 (+14344.07%)
Mutual labels:  hacktoberfest
Containerd
An open and reliable container runtime
Stars: ✭ 9,956 (+16774.58%)
Mutual labels:  hacktoberfest

HolySheet

Store any file, of any size to Google Sheets


HitCount Stars Time Tracker GitHub issues GitHub contributors License Docker Build Docker Pulls HS master docker Testback master docker

Website | API Docs | Demo Playlist

HolySheet is a program that allows you to store arbitrary files onto Google Sheets, which does not lower storage quota on Google Drive. This is inspired by uds, however it can only store ~710KB of data per doc due to the use of Base64 and Docs limitations, and only has CLI usage.

HolySheet allows for slow, but production-ready cold storage of files on your own Google account. It features a full web interface, desktop app, and CLI, along with both a REST and gRPC API. When using HolySheet's website, no data is stored server-side, so you are in full control over all your data.

Notice: Due to insane costs and the fact that sheets are soon not going to be unlimited, the holysheet.net website is currently unavailable.

Features

  • Unlimited cold file storage
  • Clean web interface to manage files, no sign-up required
  • Nothing is stored on HolySheet's servers, you are in full control
  • Scalable deployment via Docker & Kubernetes
  • Simple local CLI and Desktop application for all platforms

How it works

  • Google Sheets do not affect Drive quota
  • Google Sheets allow for (an undocumented) 10+MB per sheet
  • Base91 turns files into text with ~22% overhead
  • The use of gRPC allows for interfacing in a variety of different languages and services

Usage

HolySheet can be used both online, or locally with some simple installation steps. The only authentication required at this time is a Google account. The online website may be self-hosted, both as a single-instance program and with Kubernetes for a scaleable solution. For kubernetes usage, see the HolySheetWebserver repo. For others, see below.

Using Online

The easiest way to use HolySheet is by the website. The website can be found at https://holysheet.net/ and required you to log in with your Google account. Due to the usage of restricted OAuth scopes (drive and sheets), you will need to confirm the app has not been verified (I don't currently have the funds for verification). A website usage video will be available soon.

Using Locally

The easiest way to get started with HolySheet locally is with its CLI. For desktop app usage, see the SheetyGUI repo.

  1. Download the latest release
  2. Enable the Google Drive API and Sheets API
  3. Download the client configuration as credentials.json into the project's root
  4. Run java -jar HolySheet.jar

Usage:

Usage: ([-cm] -u=<file>... | [-cm] -e=<id> | -d=<name/id>... |  -r=<name/id>...)
[-agphlzV]
  -a, --credentials=<credentials>
                             The (absolute or relative) location of your
                               personal credentials.json file. If no file
                               extension is found, it is assumed to be an
                               environment variable
  -c, --compress             Compressed before uploading, currently uses Zip
                               format
  -d, --download=<id/name>...
                             Download the remote file
  -e, --clone=<id/name>...   Clones the remote file ID to Google Sheets
  -g, --grpc=<grpc>          Starts the gRPC server on the given port, used to
                               interface with other apps
  -h, --help                 Show this help message and exit.
  -l, --list                 Lists the uploaded files in Google Sheets
  -m, --sheetSize=<sheetSize>
                             The maximum size in bytes a single sheet can be.
                               Defaults to 10MB
  -p, --parent=<parent>      Kills the process (When running with socket) when
                               the given PID is killed
  -r, --remove=<id/name>...  Permanently removes the remote file
  -u, --upload=<file>...     Upload the local file
  -V, --version              Print version information and exit.
  -z, --local-auth           If the authentication should take place on the
                               local machine

Remote file listing (-l)

Name                   Size       Sheets   Owner                  Date         Id
--------------------   --------   ------   --------------------   ----------   ---------------------------------
bob.mp4                59.7 MB    6        Adam Yarris            01-03-2020   16dHIeHW82BYgBgfMlp3SQ8D1rhRmRO0F
ready.zip              570.4 MB   57       Amazon Accounts        01-01-2020   1qYoOYBXeWoRe71-cSxgNPiFrkoxIFwS9
InfinityWar.mp4        507.0 MB   51       Amazon Accounts        12-16-2019   1Yb1djf22hLGv0DyvZu4MLkczap-k-qZC
bob.mp4                59.7 MB    6        Amazon Accounts        12-16-2019   1z9YXGpE5wufpDswqTzuJx5AbIST9wIrZ

Kubernetes

Hosting the HolySheet website is very simple with the help of Kubernetes.

  1. Enable the Google Drive API and Sheets API
  2. Download the client configuration as credentials.json
  3. Run the following command to create secrets and deploy the cluster
$ curl -sL http://holysheet.net/bash/deploy.sh -o deploy && chmod +x deploy && ./deploy 1 master-latest master-latest http://localhost/ credentials.json

The last line of the command output should be a command that can be ran to update things like replica count, container versions, etc. An example of this command is below.

$ ./deploy 1 master-latest master-latest http://localhost/

The parameters are:

Value Description
1 The amount of replicas/pods to create of the application.
master-latest The docker version* of the HolySheetWebserver image
master-latest The docker version* of the HolySheet image
http://localhost/ The website URL to be the Allow_Origin header value
credentials.json The JSON file to create the Kubernetes secret. Should contain the Google API secret, and should not be present when updating the deploy, as this is persistant.

* The docker versions are updated every commit. They are in the format of:

[branch]-[5 characters of hash]

The hash may also be replaced with latest. It is suggested to use master and a specific commit hash if going into production, as the API being changed without the webserver frontend being updated may cause issues. Examples of image hashes: master-latest, web-dev-6f17c, master-6bf0a.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].