comparison mod_http_upload/mod_http_upload.lua @ 3659:bb8a6df5ecba

mod_http_upload: Skip write if nothing expired when checking Reducing unnecessary IO is good.
author Kim Alvefur <zash@zash.se>
date Thu, 29 Aug 2019 23:35:42 +0200
parents 02a1615d0392
children 88d414c916ee
comparison
equal deleted inserted replaced
3658:02a1615d0392 3659:bb8a6df5ecba
117 if err then return false, err; end 117 if err then return false, err; end
118 if not uploads then return true; end 118 if not uploads then return true; end
119 uploads = array(uploads); 119 uploads = array(uploads);
120 local expiry = os.time() - max_age; 120 local expiry = os.time() - max_age;
121 local upload_window = os.time() - 900; 121 local upload_window = os.time() - 900;
122 local before = #uploads;
122 uploads:filter(function (item) 123 uploads:filter(function (item)
123 local filename = item.filename; 124 local filename = item.filename;
124 if item.dir then 125 if item.dir then
125 filename = join_path(storage_path, item.dir, item.filename); 126 filename = join_path(storage_path, item.dir, item.filename);
126 end 127 end
134 elseif item.time < upload_window and not lfs.attributes(filename) then 135 elseif item.time < upload_window and not lfs.attributes(filename) then
135 return false; -- File was not uploaded or has been deleted since 136 return false; -- File was not uploaded or has been deleted since
136 end 137 end
137 return true; 138 return true;
138 end); 139 end);
140 local after = #uploads;
141 if before == after then return true end -- nothing changed, skip write
139 return datamanager.list_store(username, host, module.name, uploads); 142 return datamanager.list_store(username, host, module.name, uploads);
140 end 143 end
141 144
142 local function check_quota(username, host, does_it_fit) 145 local function check_quota(username, host, does_it_fit)
143 if not quota then return true; end 146 if not quota then return true; end