All Projects → izaurio → pavo

izaurio / pavo

Licence: MIT License
Server-side upload service for jQuery-File-Upload written in Golang

Programming Languages

go
31211 projects - #10 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to pavo

ajax
Just another AJAX requests helper
Stars: ✭ 27 (-65.38%)
Mutual labels:  file-upload
autumn
Pluggable file server micro-service.
Stars: ✭ 27 (-65.38%)
Mutual labels:  file-upload
lolisafe
Blazing fast file uploader and awesome bunker written in node! 🚀
Stars: ✭ 181 (+132.05%)
Mutual labels:  file-upload
yii2-fileapi-widget
Yii2 FileAPI widget.
Stars: ✭ 51 (-34.62%)
Mutual labels:  file-upload
eosfilestore
📜🔗 Immutable, censorship resistant, cheap, file storage on EOS blockchain
Stars: ✭ 45 (-42.31%)
Mutual labels:  file-upload
HerokuContainer
Dockerized ASP.NET Core Web API app in Heroku
Stars: ✭ 26 (-66.67%)
Mutual labels:  file-upload
django-file-form
Django-file-form helps you to write forms with a pretty ajax upload
Stars: ✭ 135 (+73.08%)
Mutual labels:  file-upload
files
Laravel Enso file management add-on for smoothing out some of common cases found when working with files
Stars: ✭ 15 (-80.77%)
Mutual labels:  file-upload
filesharing
Files sharing application made in PHP
Stars: ✭ 52 (-33.33%)
Mutual labels:  file-upload
IPS-BitTracker
Bit Torrent Tracker application for IPS 4.5x Community Suite
Stars: ✭ 18 (-76.92%)
Mutual labels:  file-upload
google-drive-direct-remote-upload
Directly upload files from the web to Google Drive without saving them completely on the server before.
Stars: ✭ 62 (-20.51%)
Mutual labels:  file-upload
upload
How to Upload a File to a Server in PHP
Stars: ✭ 83 (+6.41%)
Mutual labels:  file-upload
Meteor-Files-Demos
Demos for ostrio:files package
Stars: ✭ 51 (-34.62%)
Mutual labels:  file-upload
uploadcare-ios
UploadcareKit: iOS SDK for Uploadcare API
Stars: ✭ 24 (-69.23%)
Mutual labels:  file-upload
form-data
Spec-compliant FormData implementation for Node.js
Stars: ✭ 73 (-6.41%)
Mutual labels:  file-upload
cypress-upload-file-post-form
Solution for two Cypress testing use-cases I came across with: perform a direct http FORM request to the server containing a file and other parameters and upload a file into a form before submission
Stars: ✭ 59 (-24.36%)
Mutual labels:  file-upload
feathers-example-fileupload
A feathers file upload example, using feathers-blob.
Stars: ✭ 58 (-25.64%)
Mutual labels:  file-upload
PiZilla
A lightweight, open-source file sharing web application for local networks.
Stars: ✭ 22 (-71.79%)
Mutual labels:  file-upload
gasper
Gasper is a CLI for safe, privacy-aware file storage based on Shamir's Secret Sharing
Stars: ✭ 37 (-52.56%)
Mutual labels:  file-upload
nestjs-file-streaming
NestJS File Streaming With MongoDB
Stars: ✭ 28 (-64.1%)
Mutual labels:  file-upload

Pavo

Server-side upload service for jQuery-File-Upload written in Golang.

Usage

Running from the console by using the command:

$ bin/pavo --host=localhost:9078 --storage=/path/to/root/storage

Example

After build run application:

$ bin/pavo --storage=dummy/root_storage

Open example page in your browser:

open http://localhost:9073/example/jfu-basic.html

Install

Install golang

Install Golang. Set the GOPATH environment variable. For example for MacOS:

brew install go
mkdir $HOME/go
# Add this line in your .zshrc or .bash_profile
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

Install a project based build tool

Installing, or upgrading gb is super simple (assuming you’ve already got Go installed)

go get github.com/constabulary/gb/...

Install application:

Clone a repository and build the project:

git clone [email protected]:kavkaz/pavo.git
cd pavo
gb build

Setup nginx

When used in a production environment it is recommended to use a web server nginx. Configure the web server is reduced to specifying a directory for distribution static, location for the files, and optional authentication.

server {
    listen 80;
    server_name pavo.local;
    
    access_log /usr/local/var/log/nginx/pavo/access.log;
    error_log /usr/local/var/log/nginx/pavo/error.log notice;
    
    location /auth {
        internal;
        proxy_method GET;
        proxy_set_header Content-Length "";
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass_request_body off;
        proxy_pass http://localhost:3000/auth/url/in/your/app;
        proxy_set_header X-Original-URI $request_uri;
        client_max_body_size 0;
    }

    location /files {
        auth_request /auth;
    
        client_body_temp_path     /tmp;
        client_body_in_file_only  on;
        client_body_buffer_size   521K;
        client_max_body_size      10G;
    
        proxy_pass_request_headers on;
        proxy_set_header X-FILE $request_body_file;
        proxy_pass_request_body off;
        proxy_set_header Content-Length 0;
        proxy_pass http://127.0.0.1:9073;
    }
    
    location / {
        root /Path/To/Root/Of/Storage;
    }
}

These settings allow you to save the request body into a temporary file and pass on our application link to the file in the header X-File.

License

MIT license. Copyright (c) 2014 Zaur Abasmirzoev.

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].