diff --git a/src/lib/datasource.ts b/src/lib/datasource.ts index a56f86c..1b2103b 100644 --- a/src/lib/datasource.ts +++ b/src/lib/datasource.ts @@ -1,5 +1,5 @@ import config from './config'; -import { Swift, Local, S3 } from './datasources'; +import { Swift, Local, S3, Datasource } from './datasources'; import Logger from './logger'; if (!global.datasource) { @@ -21,4 +21,4 @@ if (!global.datasource) { } } -export default global.datasource; +export default global.datasource as Datasource; diff --git a/src/scripts/import-dir.ts b/src/scripts/import-dir.ts index af9922f..74eecac 100644 --- a/src/scripts/import-dir.ts +++ b/src/scripts/import-dir.ts @@ -1,9 +1,10 @@ import datasource from '../lib/datasource'; -import { readdir, stat } from 'fs/promises'; +import { readdir, readFile } from 'fs/promises'; import config from '../lib/config'; import { migrations } from '../server/util'; import { PrismaClient } from '@prisma/client'; import { guess } from '../lib/mimes'; +import { join } from 'path'; async function main() { const directory = process.argv[2]; @@ -43,6 +44,14 @@ async function main() { data, }); console.log('Finished transaction to database.'); + + // copy files to local storage + console.log(`Copying files to ${config.datasource.type} storage..`); + for (let i = 0; i !== files.length; ++i) { + const file = files[i]; + await datasource.save(file, await readFile(join(directory, file))); + } + console.log(`Finished copying files to ${config.datasource.type} storage.`); } main();