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 dniutmp/7d/usuwa po 7 dniachtmp/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
- Otwórz Settings bucketu, znajdź Object lifecycle rules i wybierz Add rule.
- Nazwij regułę, np.
expire-7d, i ustaw prefiks natmp/7d/. - 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 7Amazon S3
- Otwórz bucket, przejdź do Management i wybierz Create lifecycle rule.
- Nazwij regułę i wybierz Limit the scope using filters z prefiksem
tmp/7d/. - 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.