aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/lib
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2021-09-06 09:29:25 +0200
committerChocobozzz <me@florianbigard.com>2021-09-06 16:19:49 +0200
commit02b286f89088e07cac7e7068e884d3be0fd0098b (patch)
treec98e159e6ee4512bb7026d052f565fcecc840124 /server/lib
parent70430c2796b6c0455a863edc62760a3d45951fc5 (diff)
downloadPeerTube-02b286f89088e07cac7e7068e884d3be0fd0098b.tar.gz
PeerTube-02b286f89088e07cac7e7068e884d3be0fd0098b.tar.zst
PeerTube-02b286f89088e07cac7e7068e884d3be0fd0098b.zip
More robust webtorrent redundancy download
Avoid issues with inconsistencies between magnet infohash and torrent infohash, blocking webtorrent upload that will timeout
Diffstat (limited to 'server/lib')
-rw-r--r--server/lib/job-queue/handlers/video-import.ts2
-rw-r--r--server/lib/schedulers/videos-redundancy-scheduler.ts8
2 files changed, 3 insertions, 7 deletions
diff --git a/server/lib/job-queue/handlers/video-import.ts b/server/lib/job-queue/handlers/video-import.ts
index bdbf07a06..8313c2561 100644
--- a/server/lib/job-queue/handlers/video-import.ts
+++ b/server/lib/job-queue/handlers/video-import.ts
@@ -63,7 +63,7 @@ async function processTorrentImport (job: Job, payload: VideoImportTorrentPayloa
63 } 63 }
64 const target = { 64 const target = {
65 torrentName: videoImport.torrentName ? getSecureTorrentName(videoImport.torrentName) : undefined, 65 torrentName: videoImport.torrentName ? getSecureTorrentName(videoImport.torrentName) : undefined,
66 magnetUri: videoImport.magnetUri 66 uri: videoImport.magnetUri
67 } 67 }
68 return processFile(() => downloadWebTorrentVideo(target, VIDEO_IMPORT_TIMEOUT), videoImport, options) 68 return processFile(() => downloadWebTorrentVideo(target, VIDEO_IMPORT_TIMEOUT), videoImport, options)
69} 69}
diff --git a/server/lib/schedulers/videos-redundancy-scheduler.ts b/server/lib/schedulers/videos-redundancy-scheduler.ts
index 633cbcf6c..155d43343 100644
--- a/server/lib/schedulers/videos-redundancy-scheduler.ts
+++ b/server/lib/schedulers/videos-redundancy-scheduler.ts
@@ -1,7 +1,6 @@
1import { move } from 'fs-extra' 1import { move } from 'fs-extra'
2import { join } from 'path' 2import { join } from 'path'
3import { getServerActor } from '@server/models/application/application' 3import { getServerActor } from '@server/models/application/application'
4import { TrackerModel } from '@server/models/server/tracker'
5import { VideoModel } from '@server/models/video/video' 4import { VideoModel } from '@server/models/video/video'
6import { 5import {
7 MStreamingPlaylistFiles, 6 MStreamingPlaylistFiles,
@@ -15,7 +14,7 @@ import {
15} from '@server/types/models' 14} from '@server/types/models'
16import { VideosRedundancyStrategy } from '../../../shared/models/redundancy' 15import { VideosRedundancyStrategy } from '../../../shared/models/redundancy'
17import { logger, loggerTagsFactory } from '../../helpers/logger' 16import { logger, loggerTagsFactory } from '../../helpers/logger'
18import { downloadWebTorrentVideo, generateMagnetUri } from '../../helpers/webtorrent' 17import { downloadWebTorrentVideo } from '../../helpers/webtorrent'
19import { CONFIG } from '../../initializers/config' 18import { CONFIG } from '../../initializers/config'
20import { HLS_REDUNDANCY_DIRECTORY, REDUNDANCY, VIDEO_IMPORT_TIMEOUT } from '../../initializers/constants' 19import { HLS_REDUNDANCY_DIRECTORY, REDUNDANCY, VIDEO_IMPORT_TIMEOUT } from '../../initializers/constants'
21import { VideoRedundancyModel } from '../../models/redundancy/video-redundancy' 20import { VideoRedundancyModel } from '../../models/redundancy/video-redundancy'
@@ -232,10 +231,7 @@ export class VideosRedundancyScheduler extends AbstractScheduler {
232 231
233 logger.info('Duplicating %s - %d in videos redundancy with "%s" strategy.', video.url, file.resolution, strategy, lTags(video.uuid)) 232 logger.info('Duplicating %s - %d in videos redundancy with "%s" strategy.', video.url, file.resolution, strategy, lTags(video.uuid))
234 233
235 const trackerUrls = await TrackerModel.listUrlsByVideoId(video.id) 234 const tmpPath = await downloadWebTorrentVideo({ uri: file.torrentUrl }, VIDEO_IMPORT_TIMEOUT)
236 const magnetUri = generateMagnetUri(video, file, trackerUrls)
237
238 const tmpPath = await downloadWebTorrentVideo({ magnetUri }, VIDEO_IMPORT_TIMEOUT)
239 235
240 const destPath = join(CONFIG.STORAGE.REDUNDANCY_DIR, file.filename) 236 const destPath = join(CONFIG.STORAGE.REDUNDANCY_DIR, file.filename)
241 await move(tmpPath, destPath, { overwrite: true }) 237 await move(tmpPath, destPath, { overwrite: true })