aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMicah Elizabeth Scott <beth@scanlime.org>2018-12-07 05:58:17 -0800
committerChocobozzz <me@florianbigard.com>2018-12-07 14:58:17 +0100
commit4b49385892b25aea5aa9e605fbcb66074bcb49b0 (patch)
tree05768733d9168458722b1b1a66ca8d9e6673f876
parent6ebfaf67641d466bbd29db8acbd6608ed13bcd6d (diff)
downloadPeerTube-4b49385892b25aea5aa9e605fbcb66074bcb49b0.tar.gz
PeerTube-4b49385892b25aea5aa9e605fbcb66074bcb49b0.tar.zst
PeerTube-4b49385892b25aea5aa9e605fbcb66074bcb49b0.zip
Remove hard-coded 8GB upload limit in client (#1293)
* Remove hard-coded 8GB upload limit in client Ideally we'd know what the specific server's configured upload limit is before starting, but this 8GB limit is not useful if an administrator has changed the nginx post limit on the server. * Better docs for admins about client_max_body_size Seems like some admins already tweak this value up or down to allow for different maximum video upload sizes. The current codebase has no other server-side limits that I'm aware of, and I've been routinely uploading quite large videos to my instance. This patch replaces the somewhat incorrect (or outdated?) 'hard limit' comment with some advice about allocating enough space for nginx and communicating the limit with your users. Of course it would be better if this configuration could be unified with PeerTube's config somehow. I'm not sure whether the best option there is to turn off nginx's buffering here and let PeerTube handle the entire upload (can we do this only for the video upload API endpoint?) or whether we want PeerTube to generate nginx configs in a more automated way layer. In any case, this patch is intended as an incremental improvement.
-rw-r--r--client/src/app/videos/+video-edit/video-add-components/video-upload.component.ts6
-rw-r--r--support/nginx/peertube12
2 files changed, 11 insertions, 7 deletions
diff --git a/client/src/app/videos/+video-edit/video-add-components/video-upload.component.ts b/client/src/app/videos/+video-edit/video-add-components/video-upload.component.ts
index 3fcb71ac3..7ea3691fa 100644
--- a/client/src/app/videos/+video-edit/video-add-components/video-upload.component.ts
+++ b/client/src/app/videos/+video-edit/video-add-components/video-upload.component.ts
@@ -117,12 +117,6 @@ export class VideoUploadComponent extends VideoSend implements OnInit, OnDestroy
117 const videofile = this.videofileInput.nativeElement.files[0] 117 const videofile = this.videofileInput.nativeElement.files[0]
118 if (!videofile) return 118 if (!videofile) return
119 119
120 // Cannot upload videos > 8GB for now
121 if (videofile.size > 8 * 1024 * 1024 * 1024) {
122 this.notificationsService.error(this.i18n('Error'), this.i18n('We are sorry but PeerTube cannot handle videos > 8GB'))
123 return
124 }
125
126 const bytePipes = new BytesPipe() 120 const bytePipes = new BytesPipe()
127 const videoQuota = this.authService.getUser().videoQuota 121 const videoQuota = this.authService.getUser().videoQuota
128 if (videoQuota !== -1 && (this.userVideoQuotaUsed + videofile.size) > videoQuota) { 122 if (videoQuota !== -1 && (this.userVideoQuotaUsed + videofile.size) > videoQuota) {
diff --git a/support/nginx/peertube b/support/nginx/peertube
index e0b006088..914ca3741 100644
--- a/support/nginx/peertube
+++ b/support/nginx/peertube
@@ -96,8 +96,18 @@ server {
96 proxy_set_header Host $host; 96 proxy_set_header Host $host;
97 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 97 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
98 98
99 # Hard limit, PeerTube does not support videos > 8GB 99 # This is the maximum upload size, which roughly matches the maximum size of a video file
100 # you can send via the API or the web interface. By default this is 8GB, but administrators
101 # can increase or decrease the limit. Currently there's no way to communicate this limit
102 # to users automatically, so you may want to leave a note in your instance 'about' page if
103 # you change this.
104 #
105 # Note that temporary space is needed equal to the total size of all concurrent uploads.
106 # This data gets stored in /var/lib/nginx by default, so you may want to put this directory
107 # on a dedicated filesystem.
108 #
100 client_max_body_size 8G; 109 client_max_body_size 8G;
110
101 proxy_connect_timeout 600; 111 proxy_connect_timeout 600;
102 proxy_send_timeout 600; 112 proxy_send_timeout 600;
103 proxy_read_timeout 600; 113 proxy_read_timeout 600;