β

使用 openresty 实现文件上传服务

nosa.me 1364 阅读

openresty 有一个功能 lua-resty-upload ,可以用来上传文件,不用自己动手写服务了。

 安装 openresty:

yum -y install gcc gcc-c++
yum -y install readline-devel pcre-devel openssl-devel
wget http://openresty.org/download/ngx_openresty-1.7.4.1.tar.gz
tar xvzf ngx_openresty-1.7.4.1.tar.gz
cd ngx_openresty-1.7.4.1
mkdir /home/work/ngx_openresty
./configure --prefix=/home/work/ngx_openresty/
gmake
gmake install

装完之后修改 Nginx 配置:

user work;
worker_processes 2;

events {
    worker_connections 2048;
}

http {
    include mime.types;
    default_type application/octet-stream;
    lua_shared_dict upstream 10m;

    sendfile on;
    keepalive_timeout 65;

    server {
        listen 80 default_server;

        client_max_body_size 10G;

        location /upload {
            content_by_lua_file lua_scripts/upload_server.lua;
        }

        location /download {
            alias /mfs;
        }
    }
}

/upload 接口用于上传,upload_server.lua 脚本 链接,这个脚本额外依赖一个 help.lua 的脚本,链接在此, help.lua 放在 ngx_openresty/lualib 目录即可。

/download 用于下载。

 

上传实例:

$ curl -F “test=@/tmp/test.py” http://localhost/upload

[{“url”:”http:\/\/download.nosa.com\/download\/test”,”md5″:”77f7dd4ed335e315143abcc6a3c2e4d1″}]

作者:nosa.me
未来不会有sa
原文地址:使用 openresty 实现文件上传服务, 感谢原作者分享。

发表评论