comparison mod_http_upload/mod_http_upload.lua @ 2472:595d6a25bd7a

mod_http_upload: Record upload slot metadata (fixes #718)
author Kim Alvefur <zash@zash.se>
date Sun, 29 Jan 2017 17:27:49 +0100
parents f48e9e25aec4
children 173fe999cc37
comparison
equal deleted inserted replaced
2471:f48e9e25aec4 2472:595d6a25bd7a
11 local st = require"util.stanza"; 11 local st = require"util.stanza";
12 local lfs = require"lfs"; 12 local lfs = require"lfs";
13 local random_hex = require"util.uuid".get_nibbles; 13 local random_hex = require"util.uuid".get_nibbles;
14 local url = require "socket.url"; 14 local url = require "socket.url";
15 local dataform = require "util.dataforms".new; 15 local dataform = require "util.dataforms".new;
16 local datamanager = require "util.datamanager";
16 local t_concat = table.concat; 17 local t_concat = table.concat;
17 local t_insert = table.insert; 18 local t_insert = table.insert;
18 local s_upper = string.upper; 19 local s_upper = string.upper;
19 20
20 local function join_path(a, b) 21 local function join_path(a, b)
87 88
88 local random; 89 local random;
89 repeat random = random_hex(12); 90 repeat random = random_hex(12);
90 until lfs.mkdir(join_path(storage_path, random)) or not lfs.attributes(join_path(storage_path, random, filename)) 91 until lfs.mkdir(join_path(storage_path, random)) or not lfs.attributes(join_path(storage_path, random, filename))
91 92
93 datamanager.list_apppend(origin.username, origin.host, module.name, { filename = join_path(storage_path, random, filename), size = filesize, time = os.time() });
92 pending_slots[random.."/"..filename] = origin.full_jid; 94 pending_slots[random.."/"..filename] = origin.full_jid;
93 local base_url = module:http_url(); 95 local base_url = module:http_url();
94 local slot_url = url.parse(base_url); 96 local slot_url = url.parse(base_url);
95 slot_url.path = url.parse_path(slot_url.path or "/"); 97 slot_url.path = url.parse_path(slot_url.path or "/");
96 t_insert(slot_url.path, random); 98 t_insert(slot_url.path, random);