Baseflow / Baseflow/flutter_cache_manager
CacheManager saves files with the same path
- Vorherrschende Sprache
- Dart
- Sterne
- 809
- Forks
- 510
- Ø Merge
- 6 Min.
- Gemergte PRs (30 T.)
- 1
Beschreibung
## 🐛 Bug Report
Scheduled file cleanup on CachedNetworkImage throws `FileSystemException: Cannot delete file`. [Issue](https://github.com/Baseflow/flutter_cached_network_image/issues/335)
After research, it turned out that different images are recorded along the same path. This happens because relativePath encoding uses Uuid().v1() , which uses DateTime.now() , which causes our error when loading a lot of files at the same time.
To solve this problem, changing the path encoding in _flutter_cache_manager-3.3.0/lib/src/cache_manager.dart_ `putFile` and `putFileStream` should help. for example, change **v1** to **v4**, which uses a more random encoding
```
> cacheObject ??= CacheObject(
> url,
> key: key,
> relativePath: '${const Uuid().v1()}.$fileExtension',
> validTill: DateTime.now().add(maxAge),
> );
```
Beitragsleitfaden
Rechercherichtung
Lies flutter_cache_manager-3.3.0/lib/src/cache_manager.dart und konzentriere dich dabei auf putFile und putFileStream sowie darauf, wie relativePath kodiert wird. Bestätige, dass gleichzeitige Bildschreibvorgänge nicht mehr denselben Pfad erhalten und dass die geplante Bereinigung die resultierenden Dateien ohne eine FileSystemException löschen kann.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- dart, flutter
- Bereich
- backend
- Issue-Typ
- Bug
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 48/100