Improved Images

Refused image uploads are logged with their reason

Each image the library refuses is logged with why, so a refused upload can be explained afterwards.

Every image upload the library refuses now writes an image_upload.rejected log line with the reason (too_large, empty, unsupported_type, heic_conversion_failed, upload_failed, not_staged, not_saved or storage_full), the file's extension and size, and the type its bytes were read as. The file name is not logged. Before, the log recorded only how many files were refused.