FEATURE: reduce avatar sizes to 6 from 20 (#21319)

* FEATURE: reduce avatar sizes to 6 from 20

This PR introduces 3 changes:

1. SiteSetting.avatar_sizes, now does what is says on the tin.
previously it would introduce a large number of extra sizes, to allow for
various DPIs. Instead we now trust the admin with the size list.

2. When `avatar_sizes` changes, we ensure consistency and remove resized
avatars that are not longer allowed per site setting. This happens on the
12 hourly job and limited out of the box to 20k cleanups per cycle, given
this may reach out to AWS 20k times to remove things.

3.Our default avatar sizes are now "24|48|72|96|144|288" these sizes were
very specifically picked to limit amount of bluriness introduced by webkit.
Our avatars are already blurry due to 1px border, so this corrects old blur.

This change heavily reduces storage required by forums which simplifies
site moves and more.

Co-authored-by: David Taylor <david@taylorhq.com>
This commit is contained in:
Sam
2023-06-01 10:00:01 +10:00
committed by GitHub
parent 70c3248b0e
commit c2332d7505
20 changed files with 159 additions and 95 deletions

View File

@ -13,28 +13,8 @@ RSpec.describe Discourse do
describe "avatar_sizes" do
it "returns a list of integers" do
expect(Discourse.avatar_sizes).to contain_exactly(
20,
25,
30,
32,
37,
40,
45,
48,
50,
60,
64,
67,
75,
90,
96,
120,
135,
180,
240,
360,
)
SiteSetting.avatar_sizes = "10|20|30"
expect(Discourse.avatar_sizes).to contain_exactly(10, 20, 30)
end
end