comparison plugins/mod_http_file_share.lua @ 13946:f5e8ab42c708

mod_http_file_share: Check that files are still there with correct size Failed uploads can leave behind unused slots. Files shouldn't change size after they have been successfully uploaded, but might as well double check it.
author Kim Alvefur <zash@zash.se>
date Sat, 04 Dec 2021 18:56:51 +0100
parents 0b01f40df0f9
children 0f482af5b882
comparison
equal deleted inserted replaced
13945:b609c777956a 13946:f5e8ab42c708
566 module:weekly("Calculate total storage usage", function() 566 module:weekly("Calculate total storage usage", function()
567 local summary_done = summary_start(); 567 local summary_done = summary_start();
568 local iter = assert(uploads:find(nil)); 568 local iter = assert(uploads:find(nil));
569 569
570 local count, sum = 0, 0; 570 local count, sum = 0, 0;
571 for _, file in iter do 571 for slot_id, file in iter do
572 sum = sum + tonumber(file.attr.size);
573 count = count + 1; 572 count = count + 1;
573 local expected_size = tonumber(file.attr.size);
574 local filename = get_filename(slot_id);
575 local actual_size, err = lfs.attributes(filename, "size");
576 if not actual_size then
577 module:log("warn", "Missing file for upload slot %s: %s", slot_id, err);
578 count = count - 1;
579 elseif actual_size ~= expected_size then
580 module:log("warn", "Size mismatch for upload slot %s, expected %s, actual %s", slot_id, B(expected_size), B(actual_size));
581 -- TODO delete?
582 sum = sum + actual_size;
583 else
584 sum = sum + expected_size;
585 end
574 end 586 end
575 587
576 module:log("info", "Uploaded files total: %s in %d files", B(sum), count); 588 module:log("info", "Uploaded files total: %s in %d files", B(sum), count);
577 if persist_stats:set(nil, "total", sum) then 589 if persist_stats:set(nil, "total", sum) then
578 total_storage_usage = sum; 590 total_storage_usage = sum;