diff --git a/server/lib/avatar.ts b/server/lib/avatar.ts index 4b6bc3185..021426a1a 100644 --- a/server/lib/avatar.ts +++ b/server/lib/avatar.ts @@ -7,10 +7,11 @@ import { AccountModel } from '../models/account/account' import { VideoChannelModel } from '../models/video/video-channel' import { extname, join } from 'path' import { retryTransactionWrapper } from '../helpers/database-utils' +import * as uuidv4 from 'uuid/v4' async function updateActorAvatarFile (avatarPhysicalFile: Express.Multer.File, accountOrChannel: AccountModel | VideoChannelModel) { const extension = extname(avatarPhysicalFile.filename) - const avatarName = accountOrChannel.Actor.uuid + extension + const avatarName = uuidv4() + extension const destination = join(CONFIG.STORAGE.AVATARS_DIR, avatarName) await processImage(avatarPhysicalFile, destination, AVATARS_SIZE) diff --git a/server/models/avatar/avatar.ts b/server/models/avatar/avatar.ts index 5d73e24fa..303aebcc2 100644 --- a/server/models/avatar/avatar.ts +++ b/server/models/avatar/avatar.ts @@ -23,7 +23,10 @@ export class AvatarModel extends Model { @AfterDestroy static removeFilesAndSendDelete (instance: AvatarModel) { logger.info('Removing avatar file %s.', instance.filename) - return instance.removeAvatar() + + // Don't block the transaction + instance.removeAvatar() + .catch(err => logger.error('Cannot remove avatar file %s.', instance.filename, err)) } toFormattedJSON (): Avatar {