Mercurial > prosody-hg
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; |
