aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/lib
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2021-06-08 09:33:03 +0200
committerChocobozzz <me@florianbigard.com>2021-06-08 10:01:50 +0200
commitea54cd04c1ff0e55651cd5fb1a83672acde68604 (patch)
tree4e10fea658e72a9f79375d0e9b23d08915d3d0b2 /server/lib
parent295106516277581ba4967199fa5580264a90ae2c (diff)
downloadPeerTube-ea54cd04c1ff0e55651cd5fb1a83672acde68604.tar.gz
PeerTube-ea54cd04c1ff0e55651cd5fb1a83672acde68604.tar.zst
PeerTube-ea54cd04c1ff0e55651cd5fb1a83672acde68604.zip
Fix video upload with a capitalized ext
Diffstat (limited to 'server/lib')
-rw-r--r--server/lib/activitypub/actors/shared/object-to-model-attributes.ts4
-rw-r--r--server/lib/job-queue/handlers/video-file-import.ts3
-rw-r--r--server/lib/job-queue/handlers/video-import.ts3
-rw-r--r--server/lib/local-actor.ts5
4 files changed, 9 insertions, 6 deletions
diff --git a/server/lib/activitypub/actors/shared/object-to-model-attributes.ts b/server/lib/activitypub/actors/shared/object-to-model-attributes.ts
index 66b22c952..f53b98448 100644
--- a/server/lib/activitypub/actors/shared/object-to-model-attributes.ts
+++ b/server/lib/activitypub/actors/shared/object-to-model-attributes.ts
@@ -1,5 +1,5 @@
1import { extname } from 'path'
2import { v4 as uuidv4 } from 'uuid' 1import { v4 as uuidv4 } from 'uuid'
2import { getLowercaseExtension } from '@server/helpers/core-utils'
3import { isActivityPubUrlValid } from '@server/helpers/custom-validators/activitypub/misc' 3import { isActivityPubUrlValid } from '@server/helpers/custom-validators/activitypub/misc'
4import { MIMETYPES } from '@server/initializers/constants' 4import { MIMETYPES } from '@server/initializers/constants'
5import { ActorModel } from '@server/models/actor/actor' 5import { ActorModel } from '@server/models/actor/actor'
@@ -43,7 +43,7 @@ function getImageInfoFromObject (actorObject: ActivityPubActor, type: ActorImage
43 if (icon.mediaType) { 43 if (icon.mediaType) {
44 extension = mimetypes.MIMETYPE_EXT[icon.mediaType] 44 extension = mimetypes.MIMETYPE_EXT[icon.mediaType]
45 } else { 45 } else {
46 const tmp = extname(icon.url) 46 const tmp = getLowercaseExtension(icon.url)
47 47
48 if (mimetypes.EXT_MIMETYPE[tmp] !== undefined) extension = tmp 48 if (mimetypes.EXT_MIMETYPE[tmp] !== undefined) extension = tmp
49 } 49 }
diff --git a/server/lib/job-queue/handlers/video-file-import.ts b/server/lib/job-queue/handlers/video-file-import.ts
index 8297a1571..048963033 100644
--- a/server/lib/job-queue/handlers/video-file-import.ts
+++ b/server/lib/job-queue/handlers/video-file-import.ts
@@ -1,6 +1,7 @@
1import * as Bull from 'bull' 1import * as Bull from 'bull'
2import { copy, stat } from 'fs-extra' 2import { copy, stat } from 'fs-extra'
3import { extname } from 'path' 3import { extname } from 'path'
4import { getLowercaseExtension } from '@server/helpers/core-utils'
4import { createTorrentAndSetInfoHash } from '@server/helpers/webtorrent' 5import { createTorrentAndSetInfoHash } from '@server/helpers/webtorrent'
5import { generateVideoFilename, getVideoFilePath } from '@server/lib/video-paths' 6import { generateVideoFilename, getVideoFilePath } from '@server/lib/video-paths'
6import { UserModel } from '@server/models/user/user' 7import { UserModel } from '@server/models/user/user'
@@ -55,7 +56,7 @@ async function updateVideoFile (video: MVideoFullLight, inputFilePath: string) {
55 const { size } = await stat(inputFilePath) 56 const { size } = await stat(inputFilePath)
56 const fps = await getVideoFileFPS(inputFilePath) 57 const fps = await getVideoFileFPS(inputFilePath)
57 58
58 const fileExt = extname(inputFilePath) 59 const fileExt = getLowercaseExtension(inputFilePath)
59 60
60 const currentVideoFile = video.VideoFiles.find(videoFile => videoFile.resolution === videoFileResolution) 61 const currentVideoFile = video.VideoFiles.find(videoFile => videoFile.resolution === videoFileResolution)
61 62
diff --git a/server/lib/job-queue/handlers/video-import.ts b/server/lib/job-queue/handlers/video-import.ts
index d71053e87..937f586c9 100644
--- a/server/lib/job-queue/handlers/video-import.ts
+++ b/server/lib/job-queue/handlers/video-import.ts
@@ -1,6 +1,7 @@
1import * as Bull from 'bull' 1import * as Bull from 'bull'
2import { move, remove, stat } from 'fs-extra' 2import { move, remove, stat } from 'fs-extra'
3import { extname } from 'path' 3import { extname } from 'path'
4import { getLowercaseExtension } from '@server/helpers/core-utils'
4import { retryTransactionWrapper } from '@server/helpers/database-utils' 5import { retryTransactionWrapper } from '@server/helpers/database-utils'
5import { YoutubeDL } from '@server/helpers/youtube-dl' 6import { YoutubeDL } from '@server/helpers/youtube-dl'
6import { isPostImportVideoAccepted } from '@server/lib/moderation' 7import { isPostImportVideoAccepted } from '@server/lib/moderation'
@@ -119,7 +120,7 @@ async function processFile (downloader: () => Promise<string>, videoImport: MVid
119 const duration = await getDurationFromVideoFile(tempVideoPath) 120 const duration = await getDurationFromVideoFile(tempVideoPath)
120 121
121 // Prepare video file object for creation in database 122 // Prepare video file object for creation in database
122 const fileExt = extname(tempVideoPath) 123 const fileExt = getLowercaseExtension(tempVideoPath)
123 const videoFileData = { 124 const videoFileData = {
124 extname: fileExt, 125 extname: fileExt,
125 resolution: videoFileResolution, 126 resolution: videoFileResolution,
diff --git a/server/lib/local-actor.ts b/server/lib/local-actor.ts
index 55e77dd04..2d2bd43a1 100644
--- a/server/lib/local-actor.ts
+++ b/server/lib/local-actor.ts
@@ -1,8 +1,9 @@
1import 'multer' 1import 'multer'
2import { queue } from 'async' 2import { queue } from 'async'
3import * as LRUCache from 'lru-cache' 3import * as LRUCache from 'lru-cache'
4import { extname, join } from 'path' 4import { join } from 'path'
5import { v4 as uuidv4 } from 'uuid' 5import { v4 as uuidv4 } from 'uuid'
6import { getLowercaseExtension } from '@server/helpers/core-utils'
6import { ActorModel } from '@server/models/actor/actor' 7import { ActorModel } from '@server/models/actor/actor'
7import { ActivityPubActorType, ActorImageType } from '@shared/models' 8import { ActivityPubActorType, ActorImageType } from '@shared/models'
8import { retryTransactionWrapper } from '../helpers/database-utils' 9import { retryTransactionWrapper } from '../helpers/database-utils'
@@ -41,7 +42,7 @@ async function updateLocalActorImageFile (
41 ? ACTOR_IMAGES_SIZE.AVATARS 42 ? ACTOR_IMAGES_SIZE.AVATARS
42 : ACTOR_IMAGES_SIZE.BANNERS 43 : ACTOR_IMAGES_SIZE.BANNERS
43 44
44 const extension = extname(imagePhysicalFile.filename) 45 const extension = getLowercaseExtension(imagePhysicalFile.filename)
45 46
46 const imageName = uuidv4() + extension 47 const imageName = uuidv4() + extension
47 const destination = join(CONFIG.STORAGE.ACTOR_IMAGES, imageName) 48 const destination = join(CONFIG.STORAGE.ACTOR_IMAGES, imageName)