30 września 2026 · 5 min czytania

Jak automatycznie usuwać pliki po kilku dniach w S3, R2 i B2

Tymczasowe udostępnienia się mnożą: zrzuty ekranu do przeglądu, build dla testera, plik dla klienta. Reguły cyklu życia pozwalają bucketowi sprzątać po sobie. Cała sztuczka polega na tym, by o czasie życia pliku zdecydować przy przesyłaniu, umieszczając go pod prefiksem, który ma regułę.

Wzorzec z prefiksem

Utwórz jedną regułę dla każdego czasu życia, każdą ograniczoną do własnego folderu:

  • tmp/1d/ usuwa po 1 dniu
  • tmp/7d/ usuwa po 7 dniach
  • tmp/30d/ usuwa po 30 dniach

Prześlij plik do tmp/7d/2026/09/report.pdf, a tydzień później go nie będzie. Niczego poza tmp/ reguły nie dotykają.

Cloudflare R2

  1. Otwórz Settings bucketu, znajdź Object lifecycle rules i wybierz Add rule.
  2. Nazwij regułę, np. expire-7d, i ustaw prefiks na tmp/7d/.
  3. Wybierz usuwanie obiektów 7 days po ich przesłaniu i zapisz.

Albo przez Wranglera:

npx wrangler r2 bucket lifecycle add your-bucket expire-7d tmp/7d/ --expire-days 7

Amazon S3

  1. Otwórz bucket, przejdź do Management i wybierz Create lifecycle rule.
  2. Nazwij regułę i wybierz Limit the scope using filters z prefiksem tmp/7d/.
  3. W sekcji akcji wybierz Expire current versions of objects i wpisz 7 dni. W buckecie z wersjonowaniem usuwaj też trwale wersje nieaktualne.

W AWS CLI:

{
  "Rules": [
    {
      "ID": "expire-7d",
      "Status": "Enabled",
      "Filter": { "Prefix": "tmp/7d/" },
      "Expiration": { "Days": 7 }
    }
  ]
}
aws s3api put-bucket-lifecycle-configuration --bucket your-bucket \
  --lifecycle-configuration file://lifecycle.json

To polecenie zastępuje całą konfigurację cyklu życia bucketu, więc uwzględnij w niej wszystkie istniejące już reguły.

Backblaze B2

W Lifecycle Settings bucketu wybierz reguły niestandardowe i dodaj regułę z prefiksem nazwy pliku tmp/7d/. B2 działa w dwóch etapach: days from uploading to hiding i days from hiding to deleting. Ustaw je na 6 i 1, a plik zniknie mniej więcej po tygodniu.

Kiedy dokładnie pliki są usuwane?

Reguły cyklu życia działają w tle, zwykle raz dziennie. Amazon S3 liczy czas od przesłania, zaokrągla go w górę do najbliższej północy UTC, a potem umieszcza obiekt w kolejce do usunięcia. Po wygaśnięciu przestajesz za niego płacić. W praktyce plik może być dostępny jeszcze przez mniej więcej dobę po terminie. Jeśli link musi przestać działać o dokładnej godzinie, użyj zamiast tego presigned URL.

Częste pytania

Czy reguły cyklu życia usuwają pliki, gdy mój komputer jest wyłączony?

Tak. Reguły są zapisane w buckecie i działają po stronie dostawcy, więc po Twojej stronie nic nie musi być uruchomione.

Czy mogę usuwać pliki po kilku godzinach zamiast dni?

Nie. Reguły cyklu życia działają w pełnych dniach. Dla linków, które mają wygasnąć w ciągu kilku godzin, zostaw plik prywatny i udostępnij presigned URL.

Czy reguła cyklu życia usunie pliki spoza prefiksu?

Nie. Reguła z filtrem prefiksu dotyczy tylko kluczy zaczynających się od tego prefiksu. Reguła bez filtra obejmuje cały bucket, więc zawsze go ustawiaj.