Support readonly tmp directory

pull/4977/head
Chocobozzz 2022-05-03 08:18:48 +02:00
parent b3d9dedcc3
commit 21d70a7302
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
1 changed files with 17 additions and 3 deletions

View File

@ -1,4 +1,4 @@
import { ensureDir, remove } from 'fs-extra'
import { ensureDir, readdir, remove } from 'fs-extra'
import passwordGenerator from 'password-generator'
import { UserRole } from '@shared/models'
import { logger } from '../helpers/logger'
@ -50,14 +50,28 @@ function removeCacheAndTmpDirectories () {
// Cache directories
for (const key of Object.keys(cacheDirectories)) {
const dir = cacheDirectories[key]
tasks.push(remove(dir))
tasks.push(removeDirectoryOrContent(dir))
}
tasks.push(remove(CONFIG.STORAGE.TMP_DIR))
tasks.push(removeDirectoryOrContent(CONFIG.STORAGE.TMP_DIR))
return Promise.all(tasks)
}
async function removeDirectoryOrContent (dir: string) {
try {
await remove(dir)
} catch (err) {
logger.debug('Cannot remove directory %s. Removing content instead.', dir, { err })
const files = await readdir(dir)
for (const file of files) {
await remove(file)
}
}
}
function createDirectoriesIfNotExist () {
const storage = CONFIG.STORAGE
const cacheDirectories = Object.keys(FILES_CACHE)