pavo

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

Github星跟踪图

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 git@github.com: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.

主要指标

概览
名称与所有者izaurio/pavo
主编程语言Go
编程语言Go (语言数: 2)
平台
许可证MIT License
所有者活动
创建于2014-08-27 12:21:50
推送于2017-11-23 13:03:01
最后一次提交2017-11-23 15:49:16
发布数0
用户参与
星数79
关注者数6
派生数19
提交数43
已启用问题?
问题数10
打开的问题数1
拉请求数1
打开的拉请求数0
关闭的拉请求数0
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?