GitHub - mmatuska/lua-tus-server: Server-side implementation of the tus protocol in Lua (original) (raw)

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