Lightweight selfhosted Firefox Send alternative without public upload

Overview

Gokapi

Available for:

About

Gokapi is a lightweight server to share files, which expire after a set amount of downloads or days. It is similar to the discontinued Firefox Send, with the difference that only the admin is allowed to upload files.

This enables companies or individuals to share their files very easily and having them removed afterwards, therefore saving disk space and having control over who downloads the file from the server.

The project is very new, but can already be used in production. Customization is very easy with HTML/CSS knowledge. Identical files will be deduplicated.

Screenshots

Admin Menuimage Download Linkimage

Installation

Bare Metal

Simply download the latest release for your platform and execute the binary (recommended). If you want to compile the source yourself, clone this repository and execute go build.

Docker

Run the following command to create the container, volumes and execute the initial setup: docker run -it -v gokapi-data:/app/data -v gokapi-config:/app/config -p 127.0.0.1:53842:53842 f0rc3/gokapi:latest. Please note the -it docker argument, which is required for the first start!

With the argument -p 127.0.0.1:53842:53842 the service will only be accessible from the machine it is running on. Normally you will use a reverse proxy to enable SSL - if you want to make the service availabe to other computers in the network without a reverse proxy, replace the argument with -p 127.0.0.1:53842:53842. Please note that traffic will not be encypted that way and data like passwords and transferred files can easily be read by 3rd parties!

Usage

First start

On the first start you will be prompted for the initial configuration.

  • Username: Enter the name for the admin user name (who can upload files)
  • Password: This will be used to enter the admin page
  • Server URL: The external URL for the Gokapi server. Hosting it with a reverse proxy and SSL is strongly recommended! For testing purposes you can enter http://127.0.0.1:53842/
  • Index URL: The URL where the index page redirects to. Leave blank to have it redirect to the Gokapi GitHub page
  • Bind port to localhost: If you choose yes, you can only access Gokapi on the machine or by using a reverse proxy. Strongly recommended! Not displayed when deployed with Docker.

Then you can navigate to http://127.0.0.1:53842/admin in your browser and login with the credentials.

Uploading

To upload, drag and drop a file, folder or multiple files to the Upload Zone. If you want to change the default expiry conditions, this has to be done before uploading. For each file an entry in the table will appear with a download link. You can also delete files on this screen.

Customizing

By default, all files are included in the executable. If you want to change the layout (e.g. add your company logo or change the app name etc.), follow these steps:

  • Clone this repository
  • Copy either the folder static, templates or both to the directory where the executable is located
  • Make changes to the folders. static contains images, CSS files and JavaScript. templates contains the HTML code.
  • Restart the server. If the folders exist, the server will use the local files instead of the embedded files
  • Optional: To embed the files permanently, the executable needs to be recompiled with go build.

Contributors

License

This project is licensed under the GNU GPL3 - see the LICENSE.md file for details

Donations

As with all Free software, the power is less in the finances and more in the collective efforts. I really appreciate every pull request and bug report offered up by our users! If however, you're not one for coding/design/documentation, and would like to contribute financially, you can do so with the link below. Every help is very much appreciated!

paypal LiberaPay

Issues
  • Serviceworker cannot be loaded from external URL with restrictive Firefox settings

    Serviceworker cannot be loaded from external URL with restrictive Firefox settings

    I'm using docker. When I run this:

    sudo docker run -v gokapi-data:/app/data -v gokapi-config:/app/config -p 53842:53842 f0rc3/gokapi:latest

    it gives me the setup & and I can walk through it. However, when it asks me to pick the storage location, Cloud isn't an option because I didn't build it with that?

    I was able to run this instead to build it with the cloud part set up:

    sudo docker run -d --restart always -it -v gokapi-data:/app/data -v gokapi-config:/app/config -p 53842:53842
    -e GOKAPI_AWS_BUCKET={hiddenBucketName}
    -e GOKAPI_AWS_REGION=us-west-2
    -e GOKAPI_AWS_KEY={hiddenKey}
    -e GOKAPI_AWS_KEY_SECRET={hiddenSecretKey}
    f0rc3/gokapi:latest

    That boots everything up and lets me upload files. The files go into my S3 bucket. But, I can't download them. I set the CORS value to:

    [ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "GET", "PUT", "POST", "DELETE", "HEAD" ], "AllowedOrigins": [ "https://{domain}", "https://{domain}/*" ], "ExposeHeaders": [] } ]

    But when I try to download, the button just turns dark grey and nothing happens.

    bug 
    opened by acourter27 18
  • Setup with docker

    Setup with docker

    Hi, I was tryting to setup gokapi with docker-compose, but wasn't able to get everything up and running. Starting with docker-compose works fine and it creates a config file, but trying to access gokapi from a different machine does not work at all. Trying to access it with curl on the machine its running on does not work (curl: (7) Failed to connect to 127.0.0.1 port 8084: Verbindungsaufbau abgelehnt). I then tried to run everything with the provided command from the readme with docker run -it -v /home/gokapi/data:/app/data -v /home/gokapi/config:/app/config -p 8084:53842 f0rc3/gokapi:latest with the same result. Config file is the same both ways but I cannot access the sever, neither with an apache reverse proxy nor with ip:port (or on the machine itself). I also tried to run gokapi with the default ports, but same result again.

    Additionally I saw, the LengthId in the config is always 0, despite me setting it in the environment. The created config will never use use my value or the default 15. This happens with both docker run... and docker-compose btw.

    Am I missing something?

    docker-compose.yml:

    version: "3"
    services:
      gokapi:
        image: f0rc3/gokapi:latest
        container_name: gokapi
        restart: unless-stopped
        environment:
          - GOKAPI_USERNAME=Jisagi
          - GOKAPI_PASSWORD=XXXXXX
          - GOKAPI_LENGTH_ID=20
        ports:
          - "8084:53842"
        volumes:
          - /home/gokapi/data:/app/data
          - /home/gokapi/config:/app/config
    

    created config:

    {
        "Port": "127.0.0.1:53842",
        "AdminName": "Jisagi",
        "AdminPassword": "XXXXXXXXXXXXXXXXX",
        "ServerUrl": "http://127.0.0.1:53842/",
        "DefaultDownloads": 1,
        "DefaultExpiry": 14,
        "DefaultPassword": "",
        "RedirectUrl": "https://github.com/Forceu/Gokapi/",
        "Sessions": {},
        "Files": {},
        "Hotlinks": {},
        "ConfigVersion": 4,
        "SaltAdmin": "zsYecQPNEbPxhInpa62nOvWrICDyVCfoDOxotOW",
        "SaltFiles": "2z8CH4B6mkE3YoVHcXLUUg1j8lcVEuNclFe6Umq9",
        "LengthId": 0,
        "DataDir": "data"
    }
    
    bug 
    opened by Jisagi 9
  • Feature Request: Sqlite config backend

    Feature Request: Sqlite config backend

    Hello.

    Storing files and sessions inside config is not great idea for several reasons:

    1. It's not secure, because read-only access for configs in Linux is a common practice.
    2. It's not good for performance beacuse full rewrite required.
    3. It's, in general, bad practice.

    What do you think about adding new backend. Sqlite will be the simplest one, which can be used for existing configs, mostly, inplace (for example, another .sqlite file in config folder). Also supporting sqlite may lead to supporting normal DBs like Postrgres or MariaDB.

    Benefits:

    1. May increase performance and stability with low-end devices with bad IO which is may relevant for this application.
    2. May increase performance for instances with a lot of files, because config rewrite is not required (adding 1 file to 10000 existing is not a problem)
    3. State isolation is a good technique in general. Many self-hosted application can store almost full state in DB, except user data. And one DB backup script is enough for server backup, but another procedure is required for gokapi

    What do you think? I also can help with this if you wish.

    Regards.

    enhancement 
    opened by AlekseyLobanov 8
  • Cannot run in docker

    Cannot run in docker

    Hi, I'm trying run gokapi in docker on Synology NAS and neither after maybe tens attempts i'm don't have any success. Can you help me with settings please? I'm runnig many other containers but with this....i don't know.

    My container minimal settings: { "cap_add" : null, "cap_drop" : null, "cmd" : "/app/gokapi", "cpu_priority" : 50, "devices" : null, "enable_publish_all_ports" : false, "enable_restart_policy" : false, "enabled" : true, "env_variables" : [ { "key" : "PATH", "value" : "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" }, { "key" : "GOKAPI_PASSWORD", "value" : "xxxxxxxxxxxxxxxxxx" }, { "key" : "GOKAPI_USERNAME", "value" : "myName" } ], "exporting" : false, "id" : "2379bc3ac01d530858f539bc131313d61cf54dbe0ea20b90694e015ad338875f", "image" : "f0rc3/gokapi:latest", "is_ddsm" : false, "is_package" : false, "links" : [], "memory_limit" : 0, "name" : "f0rc3-gokapi1", "network" : [ { "driver" : "bridge", "name" : "bridge" } ], "network_mode" : "bridge", "port_bindings" : [ { "container_port" : 53842, "host_port" : 0, "type" : "tcp" } ], "privileged" : false, "shortcut" : { "enable_shortcut" : false }, "use_host_network" : false, "volume_bindings" : [] }

    Result: gokapi

    Sorry for my bad eglish.

    documentation question 
    opened by Ra5CZ 7
  • Redirected to a broken HTTPS page when using public domain

    Redirected to a broken HTTPS page when using public domain

    Hi. I just ran gokapi on a Debian 10 box with apache already installed and it works fine when using the internal IP address to connect, however, when I use my domain to try and connect to it, it changes my connection from being an HTTP connection to an HTTPS connection and FireFox throws the error: SSL_ERROR_RX_RECORD_TOO_LONG I'm not sure whats wrong here, as it runs perfectly fine when using my internal IP, however, this defeats the purpose of using it to share files with others. All of the settings are default except it is not bound only to localhost and I'm not using a reverse proxy. Port 53842 is port forwarded.

    invalid 
    opened by Orangian 6
  • Feature Request: Copy directlink for non image files (button)

    Feature Request: Copy directlink for non image files (button)

    Hi, would it be possible to add a fourth button to be able to copy the direct link to a non image file? This would make it easier to download files in a console. I currently create the link manually with https://host.tld/downloadFile?id=<ID>.

    It does not necessarily have to be another button, but a possibility in general to copy the above link in the frontend. On that note, you could also add DownloadUrl to the json response when uploading via the api, so custom upload scripts can use it as well.

    enhancement 
    opened by Jisagi 5
  • Hotlink URL not showing Error message after file expiration

    Hotlink URL not showing Error message after file expiration

    When trying to use a hotlink URL after the file has been deleted from the server (max download 1), it shows a page of this:

    image

    If you use the regular file URL for the same file, it redirects to /error with "Sorry, this file cannot be found. Either the link has expired or it has been downloaded already".

    bug 
    opened by sfkpmr 5
  • Feature Request: Show amount of downloads for unlimited files

    Feature Request: Show amount of downloads for unlimited files

    It would be quite helpful if I could see the number of downloads for files without download limits. Since just putting the number of downloads into the "Downloads remaining" column wouldn't make much sense, I was thinking that a sensable change would be to rename the column to something like "Downloads/Limit" and change each row to "x/limit" for files with download restrictions or "x/Unlimited" for files without restrictions. Thank you!

    enhancement 
    opened by iplusplus42 5
  • Feature request: basis-auth or header based login

    Feature request: basis-auth or header based login

    I'm running Gokapi behind Authentik, so only logged-in users can access it.

    Users need to know the admin username/password if they want to upload files. Could I disable authentication or use basic-auth (user/password JS prompt) or header based authentication to login as admin?

    enhancement 
    opened by FunDeckHermit 5
  • Bug: Hotlink expires if file is uploaded with unlimited time option

    Bug: Hotlink expires if file is uploaded with unlimited time option

    Issue

    When uploading a file as descibed in the api docs you do get a file which is listed as Unlimited for both the Downloads remaining as well as Stored until time. The issue is, the hotlink for image files does not work and only shows the "The requested image has expired" text.

    Steps to reproduce

    Upload an image via the normal frontend with unlimited storetime and downloads. The payload will be like this. The 1 and 30 are just the last values I used, but the checkboxes are NOT checked for both, so they both get ignored.

    allowedDownloads: 1
    expiryDays: 30
    password: 
    isUnlimitedDownload: true
    isUnlimitedTime: true
    file: (binary)
    

    Uploading a file as told by the docs omits isUnlimitedDownload and isUnlimitedTime. This causes the hotlink to not work for images but everything else to work just fine. A payload therefore looks like this.

    allowedDownloads: 0
    expiryDays: 0
    password: 
    file: (binary)
    

    I think using the 0 for both values and omitting the other two payload contents causes this to happen.

    EDIT: ~This only happens when both values are supposed to be unlimited. As soon as one has a set limit, this does not happen anymore.~

    EDIT2: This happens when both values are unlimited and also when the downloads remaining aren't unlimited but the stored until is.

    bug 
    opened by Jisagi 3
  • Template customization in Docker panics

    Template customization in Docker panics

    Synopsis

    When running Gokapi v1.3.1 using Docker template customization according to the documentation is broken. Browsing the login page works fine (and changes are visible), but when attempting login an error is thrown.

    How to reproduce

    1. Clone project
    2. cp -r Gokapi/internal/webserver/web/templates .
    3. Change a template file, for example templates/data/templates/string_constants.tmpl
    4. Launch the following docker-compose.yml:
    version: '3.7'
    services:
      gokapi:
        image: f0rc3/gokapi:latest
        container_name: gokapi
        ports:
          - 53842:53842
        environment:
          - GOKAPI_USERNAME=admin
          - GOKAPI_PASSWORD=admin
        volumes:
          - ./data:/app/data
          - ./config:/app/config
          - ./templates:/app/templates
    

    Stacktrace

    gokapi  | 2022/01/24 10:48:39 http: panic serving x.x.x.x:XXXX: template: html_header.tmpl:48:18: executing "header" at <.IsLogoutAvailable>: can't evaluate field IsLogoutAvailable in type *webserver.UploadView
    gokapi  | goroutine 41 [running]:
    gokapi  | net/http.(*conn).serve.func1(0xc000308500)
    gokapi  |       /usr/local/go/src/net/http/server.go:1824 +0x153
    gokapi  | panic(0xb2f080, 0xc00032a180)
    gokapi  |       /usr/local/go/src/runtime/panic.go:971 +0x499
    gokapi  | Gokapi/internal/helper.Check(...)
    gokapi  |       /compile/internal/helper/OS.go:61
    gokapi  | Gokapi/internal/webserver.showAdminMenu(0x17bf070, 0xc000348380, 0xc000336600)
    gokapi  |       /compile/internal/webserver/Webserver.go:335 +0x14a
    gokapi  | net/http.HandlerFunc.ServeHTTP(0x1689a18, 0x17bf070, 0xc000348380, 0xc000336600)
    gokapi  |       /usr/local/go/src/net/http/server.go:2069 +0x44
    gokapi  | net/http.(*ServeMux).ServeHTTP(0x1b3f6e0, 0x17bf070, 0xc000348380, 0xc000336600)
    gokapi  |       /usr/local/go/src/net/http/server.go:2448 +0x1ad
    gokapi  | net/http.serverHandler.ServeHTTP(0xc0002a2000, 0x17bf070, 0xc000348380, 0xc000336600)
    gokapi  |       /usr/local/go/src/net/http/server.go:2887 +0xa3
    gokapi  | net/http.(*conn).serve(0xc000308500, 0x17c1dc0, 0xc000320480)
    gokapi  |       /usr/local/go/src/net/http/server.go:1952 +0x8cd
    gokapi  | created by net/http.(*Server).Serve
    gokapi  |       /usr/local/go/src/net/http/server.go:3013 +0x39b
    
    documentation 
    opened by fritzfranzke 3
  • Feature Request: Add TOTP as an option for a rotating password

    Feature Request: Add TOTP as an option for a rotating password

    Feature Request

    Hi, it would be nice to have a TOTP secret in the admin so the user has to enter the correct 6-digit code to download the file.

    Use case

    MeshCentral has an Assistant feature which allows users to download a file that connects to your server so you can connect to their computer for assistance. The process to invitee a user to download and run the software is not intuitive. Also, as a personal preference, I don't want to host the file in the same system that the agent connects to.

    Ideally, if they go to help.example.com, they can see a general help page with instructions for downloading/running the agent. When they click the link, it will take them to Gokapi at which point it will ask for a static password. Since this password never changes, anyone with the password can revisit the page and download the software. If the password rotates, like with TOTP, they won't know the code to download the software. A rotating password also helps protect against brute force.

    enhancement wontfix 
    opened by NiceGuyIT 1
  • New encryption key is not loaded after running setup and without restarting the server

    New encryption key is not loaded after running setup and without restarting the server

    To reproduce:

    • Have a running server with encryption enabled (e.g. Level 2)
    • Run setup
    • Do not change encryption and save
    • An already encrypted file will not be able to be downloaded if the server is not restarted afterwards (cipher: message authentication failed)
    • A new file can still be downloaded after a server restart

    If you are affected by this bug, please restart your server manually after finishing the setup

    bug 
    opened by Forceu 0
  • Enhance Json API output

    Enhance Json API output

    In the future the Json output for the file object should be better:

    • Remove unnecessary values, e.g. extensive encryption details
    • Add values, e.g. direct link for hotlinks instead of only the hotlink ID
    enhancement 
    opened by Forceu 0
  • Feature request: User management

    Feature request: User management

    Hello,

    it would be very nice to have the possibilites to add new user that can access the admin board

    And : remove a user, edit user passwords could be cool too

    Thanks !

    enhancement 
    opened by antoine2tt 2
  • Feature request: albums

    Feature request: albums

    It's already possible to upload images in batches, but each image is saved as its own upload.

    Would be great if they could be saved together and displayed on one page.

    enhancement 
    opened by sfkpmr 1
Releases(v1.5.2)
Owner
Marc Ole Bulling
Marc Ole Bulling
Generate PlantUML diagrams from Chrome or Firefox network inspections

hoofli Generate PlantUML diagrams from Chrome or Firefox network inspections This tool reads browser HAR files stored on your local disk and transform

Pascal Dennerly 3 Feb 22, 2022
a benchmarking&stressing tool that can send raw HTTP requests

reqstress reqstress is a benchmarking&stressing tool that can send raw HTTP requests. It's written in Go and uses fasthttp library instead of Go's def

Utku Sen 153 May 30, 2022
Send keyboard events with Golang

sendkeys sendkeys is a cross-platform usability wrapper for the keybd_event Go library. Summary Use this library to turn full strings into simulated k

kayos 9 Jun 19, 2022
Test your code without writing mocks with ephemeral Docker containers 📦 Setup popular services with just a couple lines of code ⏱️ No bash, no yaml, only code 💻

Gnomock – tests without mocks ??️ Spin up entire dependency stack ?? Setup initial dependency state – easily! ?? Test against actual, close to product

Yury Fedorov 845 Jun 26, 2022
Backpulse's core. Backpulse is an API Based CMS. Build you own website without worrying about the content administration system.

Backpulse core Backpulse is an API Based / Headless CMS. Your site's content is accessible directly via our RESTful API, on any web framework and any

Aurèle Oulès 67 Jun 8, 2022
How we can run unit tests in parallel mode with failpoint injection taking effect and without injection race

This is a simple demo to show how we can run unit tests in parallel mode with failpoint injection taking effect and without injection race. The basic

amyangfei 1 Oct 31, 2021
Lightweight service virtualization/API simulation tool for developers and testers

API simulations for development and testing Hoverfly is a lightweight, open source API simulation tool. Using Hoverfly, you can create realistic simul

null 1.9k Jun 25, 2022
A lightweight load balancer used to create big Selenium clusters

Go Grid Router Go Grid Router (aka Ggr) is a lightweight active load balancer used to create scalable and highly-available Selenium clusters. Articles

Aerokube 286 Jun 8, 2022
Professional lightweight testing mini-framework for Go.

is Professional lightweight testing mini-framework for Go. Easy to write and read Beautifully simple API with everything you need: is.Equal, is.True,

Mat Ryer 1.4k Jun 24, 2022
Lightweight HTTP mocking in Go (aka golang)

httpmock This library builds on Go's built-in httptest library, adding a more mockable interface that can be used easily with other mocking tools like

null 77 Jun 27, 2022
A basic lightweight HTTP client for Go with included mock features.

A basic lightweight HTTP client for Go with included mock features. Features Support almost all http method like G

Andres Mijares 1 May 2, 2022
create temporary Firefox profile, install user.js and extensions, launch Firefox

tmpfox tmpfox is a Firefox wrapper that: Creates a temporary Firefox profile Installs user.js configuration file from Arkenfox for increased privacy a

Charalampos Mitsakis 4 May 24, 2022
Selfhosted collaborative browser - room management for n.eko

neko-rooms Simple room management system for n.eko. Self hosted rabb.it alternative. How to start You need to have installed Docker and docker-compose

Miroslav Šedivý 170 Jun 21, 2022
Node is where client will send data to, create block send to miner, create block send to parent and receive tick from validator and do validate

Node Receive Tick from validator Validate POH of tick send result to validator Receive confirm block from validator Send Checked block to validator Ho

Hieu Phan 0 Dec 31, 2021
Playwright for Go a browser automation library to control Chromium, Firefox and WebKit with a single API.

?? Playwright for API reference | Example recipes Playwright is a Go library to automate Chromium, Firefox and WebKit with a single API. Playwright is

Max Schmitt 833 Jun 22, 2022
Build apps that run everywhere with Go and a browser engine of your choice (Chrome, Firefox, Epiphany or Android WebView).

hydrapp Build apps that run everywhere with Go and a browser engine of your choice (Chrome, Firefox, Epiphany or Android WebView). Overview ?? This pr

Felix Pojtinger 7 Apr 10, 2022
Generate PlantUML diagrams from Chrome or Firefox network inspections

hoofli Generate PlantUML diagrams from Chrome or Firefox network inspections This tool reads browser HAR files stored on your local disk and transform

Pascal Dennerly 3 Feb 22, 2022
The open source public cloud platform. An AWS alternative for the next generation of developers.

M3O M3O is an open source public cloud platform. We are building an AWS alternative for the next generation of developers. Overview AWS was a first ge

Micro Services 2.2k Jun 15, 2022
A lightweight, universal OneDrive upload tool for all platforms

简体中文 OneDriveUploader MoeClub wrote a very good version, but unfortunately it's not open source and hasn't been updated in a while. This project is a

高玩梁 241 Jun 25, 2022
A lightweight, universal cloud drive upload tool for all platforms

简体中文 LightUploader MoeClub wrote a very good version, but unfortunately it's not open source and hasn't been updated in a while. This project is a sim

高玩梁 241 Jun 25, 2022
A bot based on Telegram Bot API written in Golang allows users to download public Instagram photos, videos, and albums without receiving the user's credentials.

InstagramRobot InstagramRobot is a bot based on Telegram Bot API written in Golang that allows users to download public Instagram photos, videos, and

FTC Team 8 Dec 16, 2021
Public key derivator for ECDSA (without knowledge of the private key)

A proof of concept of a public key derivation for ECDSA (without knowledge of the private key) It is a demonstration of how to implement a simple key

null 1 Dec 16, 2021
Zinc Search engine. A lightweight alternative to elasticsearch that requires minimal resources, written in Go.

Zinc Zinc is a search engine that does full text indexing. It is a lightweight alternative to elasticsearch and runs in less than 100 MB of RAM. It us

Prabhat Sharma 9.3k Jun 28, 2022
Zinc Search engine. A lightweight alternative to elasticsearch that requires minimal resources, written in Go.

Zinc Search Engine Zinc is a search engine that does full text indexing. It is a lightweight alternative to Elasticsearch and runs using a fraction of

null 9.2k Jun 26, 2022
go-fastdfs 是一个简单的分布式文件系统(私有云存储),具有无中心、高性能,高可靠,免维护等优点,支持断点续传,分块上传,小文件合并,自动同步,自动修复。Go-fastdfs is a simple distributed file system (private cloud storage), with no center, high performance, high reliability, maintenance free and other advantages, support breakpoint continuation, block upload, small file merge, automatic synchronization, automatic repair.(similar fastdfs).

中文 English 愿景:为用户提供最简单、可靠、高效的分布式文件系统。 go-fastdfs是一个基于http协议的分布式文件系统,它基于大道至简的设计理念,一切从简设计,使得它的运维及扩展变得更加简单,它具有高性能、高可靠、无中心、免维护等优点。 大家担心的是这么简单的文件系统,靠不靠谱,可不

小张 3.1k Jun 20, 2022
Plik is a scalable & friendly temporary file upload system ( wetransfer like ) in golang.

Want to chat with us ? Telegram channel : https://t.me/plik_root_gg Plik Plik is a scalable & friendly temporary file upload system ( wetransfer like

root.gg 1k Jun 28, 2022
🙌 Bulk-upload GitHub Issues

?? Bulk-upload GitHub Issues

Hunter Gatewood 22 Jul 23, 2021
Download an upload large files to Google Drive (API v3)

gdriver gdriver is a command-line tool, written in Go, used for uploading and downloading large personal files from Google Drive (API v3). The tool pr

Marcin Tojek 66 Apr 2, 2022
upload to gdrive include shared drive

gdrive_uploader upload to gdrive include shared drive How to get go get github.com/heat1024/gdrive_uploader About credential You must set your client

ryu 3 Jun 8, 2022