Merge pull request #518 from LaurentLouf/feature-handle_cache_full_situation

Handle cache full situation
This commit is contained in:
Sasha Hilton 2020-12-13 17:34:14 +00:00 committed by GitHub
commit c8713a6c01
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -83,11 +83,25 @@ impl Cache {
pub fn save_file(&self, file: FileId, contents: &mut dyn Read) { pub fn save_file(&self, file: FileId, contents: &mut dyn Read) {
if self.use_audio_cache { if self.use_audio_cache {
let path = self.file_path(file); let path = self.file_path(file);
mkdir_existing(path.parent().unwrap()).unwrap(); mkdir_existing(path.parent().unwrap()).unwrap();
let mut cache_file = File::create(path).unwrap(); let mut cache_file = File::create(path).unwrap_or_else(|_e| {
::std::io::copy(contents, &mut cache_file).unwrap(); ::std::fs::remove_dir_all(&self.root.join("files")).unwrap();
mkdir_existing(&self.root.join("files")).unwrap();
let path = self.file_path(file);
mkdir_existing(path.parent().unwrap()).unwrap();
File::create(path).unwrap()
});
::std::io::copy(contents, &mut cache_file).unwrap_or_else(|_e| {
::std::fs::remove_dir_all(&self.root.join("files")).unwrap();
mkdir_existing(&self.root.join("files")).unwrap();
let path = self.file_path(file);
mkdir_existing(path.parent().unwrap()).unwrap();
let mut file = File::create(path).unwrap();
::std::io::copy(contents, &mut file).unwrap()
});
} }
} }
} }