Home

Awesome

lua-tus-server

Server-side implementation of the tus protocol in Lua.

Features

Requiremens

Synopsis

    lua_package_path "/path/to/lua-tus-server/lib/?.lua;;";
    lua_shared_dict tuslock 10m;

    server {
        location /upload/ {
            content_by_lua_block {
                local tus_server = require "tus.server"
                local tus = tus_server:new()
                tus.config.storage_backend = "tus.storage_file"
                tus.config.storage_backend_config.storage_path = "/tmp"
                tus.config.storage_backend_config.lock_zone = ngx.shared.tuslock
                tus.config.upload_url = "/upload"
                tus.config.expire_timeout = 1209600
                tus:process_request()

                if tus.resource.name and tus.resource.state == "completed" then
                    local path = tus.sb:get_path(tus.resource.name)
                    os.rename(path, "/tmp/newfile")
                    tus.sb:delete(tus.resource.name)
                end
            }
        }
    }

Todo

License

MIT