URLに拡張子を付けた

This commit is contained in:
syuilo 2019-03-02 07:41:31 +09:00
parent 1d3342e641
commit 1eece5ab3d
No known key found for this signature in database
GPG key ID: BDC4C49D06AB9D69
2 changed files with 23 additions and 15 deletions

View file

@ -33,13 +33,21 @@ DriveFile.findOne({
}, {
'metadata.url': null
}]
}, { fields: { _id: true } }).then(xs => {
}, { fields: { _id: true, filename: true, contentType: true } }).then(xs => {
for (const x of xs) {
let [ext] = (x.filename.match(/\.([a-zA-Z0-9_-]+)$/) || ['']);
if (ext === '') {
if (x.contentType === 'image/jpeg') ext = '.jpg';
if (x.contentType === 'image/png') ext = '.png';
if (x.contentType === 'image/webp') ext = '.webp';
}
DriveFile.update({ _id: x._id }, {
$set: {
'metadata.url': `${config.driveUrl}/${uuid.v4()}`,
'metadata.webpublicUrl': `${config.driveUrl}/${uuid.v4()}?web`,
'metadata.thumbnailUrl': `${config.driveUrl}/${uuid.v4()}?thumbnail`,
'metadata.url': `${config.driveUrl}/${uuid.v4()}${ext}`,
'metadata.webpublicUrl': `${config.driveUrl}/${uuid.v4()}.jpg`,
'metadata.thumbnailUrl': `${config.driveUrl}/${uuid.v4()}.jpg`,
}
});
}

View file

@ -42,16 +42,16 @@ async function save(path: string, name: string, type: string, hash: string, size
// thunbnail, webpublic を必要なら生成
const alts = await generateAlts(path, type, !metadata.uri);
let [ext] = (name.match(/\.([a-zA-Z0-9_-]+)$/) || ['']);
if (ext === '') {
if (type === 'image/jpeg') ext = '.jpg';
if (type === 'image/png') ext = '.png';
if (type === 'image/webp') ext = '.webp';
}
if (config.drive && config.drive.storage == 'minio') {
//#region ObjectStorage params
let [ext] = (name.match(/\.([a-zA-Z0-9_-]+)$/) || ['']);
if (ext === '') {
if (type === 'image/jpeg') ext = '.jpg';
if (type === 'image/png') ext = '.png';
if (type === 'image/webp') ext = '.webp';
}
const baseUrl = config.drive.baseUrl
|| `${ config.drive.config.useSSL ? 'https' : 'http' }://${ config.drive.config.endPoint }${ config.drive.config.port ? `:${config.drive.config.port}` : '' }/${ config.drive.bucket }`;
@ -118,9 +118,9 @@ async function save(path: string, name: string, type: string, hash: string, size
return file;
} else { // use MongoDB GridFS
Object.assign(metadata, {
url: `${config.driveUrl}/${uuid.v4()}`,
webpublicUrl: `${config.driveUrl}/${uuid.v4()}?web`,
thumbnailUrl: `${config.driveUrl}/${uuid.v4()}?thumbnail`,
url: `${config.driveUrl}/${uuid.v4()}${ext}`,
webpublicUrl: `${config.driveUrl}/${uuid.v4()}.${alts.webpublic.ext}`,
thumbnailUrl: `${config.driveUrl}/${uuid.v4()}.${alts.thumbnail.ext}`,
} as IMetadata);
// #region store original