]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Fix avatar update
authorChocobozzz <me@florianbigard.com>
Mon, 8 Oct 2018 08:37:08 +0000 (10:37 +0200)
committerChocobozzz <me@florianbigard.com>
Mon, 8 Oct 2018 08:37:43 +0000 (10:37 +0200)
server/lib/avatar.ts
server/models/avatar/avatar.ts

index 4b6bc318579ffeb4cd29ad01c9b1c83591b3779f..021426a1a65314b8f9489a74361dff774ff8bdea 100644 (file)
@@ -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)
 
index 5d73e24fae4078b814d3e92ed6338b8156e36361..303aebcc2cc0919f7296e824ad958cc081b0780d 100644 (file)
@@ -23,7 +23,10 @@ export class AvatarModel extends Model<AvatarModel> {
   @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 {