mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2025-10-03 17:59:37 +02:00
Add ability to list and delete original file
In admin
This commit is contained in:
parent
058ef6912c
commit
a159b8b517
21 changed files with 295 additions and 45 deletions
|
@ -1,5 +1,5 @@
|
|||
import { buildAspectRatio } from '@peertube/peertube-core-utils'
|
||||
import { VideoState } from '@peertube/peertube-models'
|
||||
import { HttpStatusCode, UserRight, VideoState } from '@peertube/peertube-models'
|
||||
import { sequelizeTypescript } from '@server/initializers/database.js'
|
||||
import { CreateJobArgument, CreateJobOptions, JobQueue } from '@server/lib/job-queue/index.js'
|
||||
import { Hooks } from '@server/lib/plugins/hooks.js'
|
||||
|
@ -19,6 +19,7 @@ import { logger, loggerTagsFactory } from '../../../helpers/logger.js'
|
|||
import {
|
||||
asyncMiddleware,
|
||||
authenticate,
|
||||
ensureUserHasRight,
|
||||
replaceVideoSourceResumableInitValidator,
|
||||
replaceVideoSourceResumableValidator,
|
||||
videoSourceGetLatestValidator
|
||||
|
@ -35,6 +36,14 @@ videoSourceRouter.get('/:id/source',
|
|||
getVideoLatestSource
|
||||
)
|
||||
|
||||
videoSourceRouter.delete('/:id/source/file',
|
||||
openapiOperationDoc({ operationId: 'deleteVideoSourceFile' }),
|
||||
authenticate,
|
||||
ensureUserHasRight(UserRight.MANAGE_VIDEO_FILES),
|
||||
asyncMiddleware(videoSourceGetLatestValidator),
|
||||
asyncMiddleware(deleteVideoLatestSourceFile)
|
||||
)
|
||||
|
||||
setupUploadResumableRoutes({
|
||||
routePath: '/:id/source/replace-resumable',
|
||||
router: videoSourceRouter,
|
||||
|
@ -52,6 +61,24 @@ export {
|
|||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
async function deleteVideoLatestSourceFile (req: express.Request, res: express.Response) {
|
||||
const videoSource = res.locals.videoSource
|
||||
const video = res.locals.videoAll
|
||||
|
||||
await video.removeOriginalFile(videoSource)
|
||||
|
||||
videoSource.keptOriginalFilename = null
|
||||
videoSource.fps = null
|
||||
videoSource.resolution = null
|
||||
videoSource.width = null
|
||||
videoSource.height = null
|
||||
videoSource.metadata = null
|
||||
videoSource.size = null
|
||||
await videoSource.save()
|
||||
|
||||
return res.sendStatus(HttpStatusCode.NO_CONTENT_204)
|
||||
}
|
||||
|
||||
function getVideoLatestSource (req: express.Request, res: express.Response) {
|
||||
return res.json(res.locals.videoSource.toFormattedJSON())
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue