Photo Sharing. For Everyone.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Go to file
Your Name 6496904293 Fix account storage limit not freeing on media deletion (#7169)
users.storage_used only ever grew: uploads incremented it but no deletion
path decremented it, so users hit the account size limit even when their
real media usage was well below it.

- Decrement storage_used in MediaDeletePipeline when media is removed
- Add UserStorageService::increaseStorageUsed / decrementStorageUsed as the
  fast, symmetric hot-path counter updates (floor-based, clamped at zero)
- Refactor the 6 upload call sites to use increaseStorageUsed instead of
  duplicated inline writes (also fixes ceil/floor drift vs the reconciler)
- Add (user_id, size) covering index so per-user SUM(size) is not a full
  table scan (INPLACE/LOCK=NONE, skipped on sqlite)
- Add user:storage:recalculate command to repair affected accounts, with a
  daily --stale=168 scheduled reconciler to correct any drift
- Add regression tests for the pipeline and UserStorageService
2 weeks ago
.ddev
…
.github
…
.vscode
…
app Fix account storage limit not freeing on media deletion (#7169) 2 weeks ago
bootstrap Fix account storage limit not freeing on media deletion (#7169) 2 weeks ago
config
…
database Fix account storage limit not freeing on media deletion (#7169) 2 weeks ago
lang
…
notes
…
public
…
resources Refactor Auth, remove expensive middleware 2 weeks ago
routes Refactor Auth, remove expensive middleware 2 weeks ago
storage
…
tests Fix account storage limit not freeing on media deletion (#7169) 2 weeks ago
.dockerignore
…
.editorconfig
…
.env.docker.example
…
.env.example
…
.env.testing
…
.gitattributes
…
.gitignore
…
.markdownlint.json
…
.node-version
…
.shellcheckrc
…
CHANGELOG.md
…
CODEOWNERS
…
CODE_OF_CONDUCT.md
…
CONTRIBUTING.md
…
DOCKER_COMPOSE_SETUP.md
…
Dockerfile
…
LICENSE
…
README.md
…
SECURITY.md
…
artisan
…
composer.json
…
composer.lock
…
crowdin.yml
…
docker-compose.test.yml
…
docker-compose.yml
…
funding.json
…
package-lock.json
…
package.json
…
phpstan.neon
…
phpunit.xml
…
pint.json
…
psalm-baseline.xml
…
psalm.xml
…
server.php
…
webpack.mix.js
…

README.md

Pixelfed logo

Latest Stable Version License Total Pixelfed users from FediDB

Introduction

Photo sharing the way it should be. Pixelfed lets your casual shots and creative photography find their audience naturally, without algorithmic barriers. Join millions of people sharing across the fediverse.

Pixelfed web user interface in light mode

Official Documentation

Documentation for Pixelfed can be found on the Pixelfed documentation website.

Run on YunoHost

Install on YunoHost

Pixelfed app for YunoHost. See the package source code

License

Pixelfed is open-sourced software licensed under the AGPL license.

Communication

The ways you can communicate on the project are below. Before interacting, please read through the Code Of Conduct.

Pixelfed Sponsors

We would like to extend our thanks to the following sponsors for funding Pixelfed development. If you are interested in becoming a sponsor, please visit the Pixelfed Patreon Page

This project is supported by: