directus

Форк
0
/
validate-storage.ts 
44 строки · 1.3 Кб
1
import { useEnv } from '@directus/env';
2
import { toArray } from '@directus/utils';
3
import { constants } from 'fs';
4
import { access } from 'node:fs/promises';
5
import path from 'path';
6
import { getExtensionsPath } from '../extensions/lib/get-extensions-path.js';
7
import { useLogger } from '../logger.js';
8

9
export async function validateStorage(): Promise<void> {
10
	const env = useEnv();
11
	const logger = useLogger();
12

13
	if (env['DB_CLIENT'] === 'sqlite3') {
14
		try {
15
			await access(path.dirname(env['DB_FILENAME'] as string), constants.R_OK | constants.W_OK);
16
		} catch {
17
			logger.warn(
18
				`Directory for SQLite database file (${path.resolve(
19
					path.dirname(env['DB_FILENAME'] as string),
20
				)}) is not read/writeable!`,
21
			);
22
		}
23
	}
24

25
	const usedStorageDrivers = toArray(env['STORAGE_LOCATIONS'] as string).map(
26
		(location) => env[`STORAGE_${location.toUpperCase()}_DRIVER`],
27
	);
28

29
	if (usedStorageDrivers.includes('local')) {
30
		try {
31
			await access(env['STORAGE_LOCAL_ROOT'] as string, constants.R_OK | constants.W_OK);
32
		} catch {
33
			logger.warn(`Upload directory (${path.resolve(env['STORAGE_LOCAL_ROOT'] as string)}) is not read/writeable!`);
34
		}
35
	}
36

37
	if (!env['EXTENSIONS_LOCATION']) {
38
		try {
39
			await access(getExtensionsPath(), constants.R_OK);
40
		} catch {
41
			logger.warn(`Extensions directory (${path.resolve(getExtensionsPath())}) is not readable!`);
42
		}
43
	}
44
}
45

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.