PeerTube/server/lib
kontrollanten f6d6e7f861
Resumable video uploads (#3933)
* WIP: resumable video uploads

relates to #324

* fix review comments

* video upload: error handling

* fix audio upload

* fixes after self review

* Update server/controllers/api/videos/index.ts

Co-authored-by: Rigel Kent <par@rigelk.eu>

* Update server/middlewares/validators/videos/videos.ts

Co-authored-by: Rigel Kent <par@rigelk.eu>

* Update server/controllers/api/videos/index.ts

Co-authored-by: Rigel Kent <par@rigelk.eu>

* update after code review

* refactor upload route

- restore multipart upload route
- move resumable to dedicated upload-resumable route
- move checks to middleware
- do not leak internal fs structure in response

* fix yarn.lock upon rebase

* factorize addVideo for reuse in both endpoints

* add resumable upload API to openapi spec

* add initial test and test helper for resumable upload

* typings for videoAddResumable middleware

* avoid including aws and google packages via node-uploadx, by only including uploadx/core

* rename ex-isAudioBg to more explicit name mentioning it is a preview file for audio

* add video-upload-tmp-folder-cleaner job

* stronger typing of video upload middleware

* reduce dependency to @uploadx/core

* add audio upload test

* refactor resumable uploads cleanup from job to scheduler

* refactor resumable uploads scheduler to compare to last execution time

* make resumable upload validator to always cleanup on failure

* move legacy upload request building outside of uploadVideo test helper

* filter upload-resumable middlewares down to POST, PUT, DELETE

also begin to type metadata

* merge add duration functions

* stronger typings and documentation for uploadx behaviour, move init validator up

* refactor(client/video-edit): options > uploadxOptions

* refactor(client/video-edit): remove obsolete else

* scheduler/remove-dangling-resum: rename tag

* refactor(server/video): add UploadVideoFiles type

* refactor(mw/validators): restructure eslint disable

* refactor(mw/validators/videos): rename import

* refactor(client/vid-upload): rename html elem id

* refactor(sched/remove-dangl): move fn to method

* refactor(mw/async): add method typing

* refactor(mw/vali/video): double quote > single

* refactor(server/upload-resum): express use > all

* proper http methud enum server/middlewares/async.ts

* properly type http methods

* factorize common video upload validation steps

* add check for maximum partially uploaded file size

* fix audioBg use

* fix extname(filename) in addVideo

* document parameters for uploadx's resumable protocol

* clear META files in scheduler

* last audio refactor before cramming preview in the initial POST form data

* refactor as mulitpart/form-data initial post request

this allows preview/thumbnail uploads alongside the initial request,
and cleans up the upload form

* Add more tests for resumable uploads

* Refactor remove dangling resumable uploads

* Prepare changelog

* Add more resumable upload tests

* Remove user quota check for resumable uploads

* Fix upload error handler

* Update nginx template for upload-resumable

* Cleanup comment

* Remove unused express methods

* Prefer to use got instead of raw http

* Don't retry on error 500

Co-authored-by: Rigel Kent <par@rigelk.eu>
Co-authored-by: Rigel Kent <sendmemail@rigelk.eu>
Co-authored-by: Chocobozzz <me@florianbigard.com>
2021-05-10 11:13:41 +02:00
..
activitypub Update channel updatedAt when uploading a video 2021-05-10 09:38:11 +02:00
auth Fix external on logout hook 2021-03-24 18:18:41 +01:00
emails Add new plugin/peertube version notifs 2021-03-24 18:18:41 +01:00
files-cache Add hooks support for video download 2021-03-24 18:18:41 +01:00
job-queue Fix lint 2021-05-05 09:55:01 +02:00
plugins Plugin user.getAuthUser is now async 2021-05-05 15:26:28 +02:00
schedulers Resumable video uploads (#3933) 2021-05-10 11:13:41 +02:00
actor-image.ts Add size info in db for actor images 2021-04-08 13:38:04 +02:00
blocklist.ts Split types and typings 2020-06-18 10:46:27 +02:00
client-html.ts modify tests to support current behaviour regarding plaintext description 2021-04-13 15:45:09 +02:00
config.ts Add server plugin helpers 2021-04-09 15:17:43 +02:00
emailer.ts Add sendmail log in server 2021-04-21 15:18:22 +02:00
hls.ts server: fix HLS playlist format 2021-05-06 08:47:43 +02:00
live-manager.ts Fix preview upload with capitalized ext 2021-02-26 09:16:31 +01:00
moderation.ts Resumable video uploads (#3933) 2021-05-10 11:13:41 +02:00
notifier.ts Add new plugin/peertube version notifs 2021-03-24 18:18:41 +01:00
peertube-socket.ts Fix lint 2021-04-12 17:00:21 +02:00
redis.ts Update server dependencies 2021-02-03 09:45:08 +01:00
redundancy.ts Split types and typings 2020-06-18 10:46:27 +02:00
stat-manager.ts add channel and playlist stats to server stats endpoint (#3747) 2021-04-12 11:19:07 +02:00
thumbnail.ts Add size info in db for actor images 2021-04-08 13:38:04 +02:00
user.ts Add new plugin/peertube version notifs 2021-03-24 18:18:41 +01:00
video-blacklist.ts Introduce tags to the logger 2021-03-24 18:18:40 +01:00
video-channel.ts Add banners support 2021-04-08 10:07:53 +02:00
video-comment.ts Fix incorrect IDs in AP federation 2020-11-20 11:21:08 +01:00
video-paths.ts Fix import tests 2021-02-18 14:08:16 +01:00
video-playlist.ts Fix incorrect IDs in AP federation 2020-11-20 11:21:08 +01:00
video-transcoding-profiles.ts Add scale filter to documentation 2021-04-09 15:53:18 +02:00
video-transcoding.ts Cleanup 2021-02-18 13:38:09 +01:00
video.ts Resumable video uploads (#3933) 2021-05-10 11:13:41 +02:00