diff --git a/.env.sample b/.env.sample index d3d4a9c..f47f501 100644 --- a/.env.sample +++ b/.env.sample @@ -23,6 +23,10 @@ DATA_FSYNC=false DISABLE_SCRUB=false BLOCK_SIZE=1MiB # only increase if there is a fast network connection between nodes +# Change this to limit the maximum size of uploads. By default it's +# 5GiB, the maximum chunk size for multipart uploads. +#MAX_REQUEST_BODY_BYTES=5368709120 + ## Bootstrap this node in an existing Garage cluster #BOOTSTRAP_HOST="" #BOOTSTRAP_ID="" diff --git a/README.md b/README.md index a597439..2e7084c 100644 --- a/README.md +++ b/README.md @@ -102,6 +102,18 @@ abra app deploy Within your chosen monitoring software (ie. Telegraf, Prometheus, etc.), you'll need to make sure it interprets the correct scheme (https), and point it at /metrics as the monitoring endpoint. The secret you copied earlier called metrics_token will be used to authenticate the request. +## Upload limits + +To prevent "499 Client Closed Request" errors you should make sure your +`READ_TIMEOUT` and `WRITE_TIMEOUT` variables on Traefik are high enough. +Same on the proxy if you're reverse-proxying Traefik. + +Change `MAX_REQUEST_BODY_BYTES` to limit the maximum uploaded chunk +size, which could range from 5MiB to 5GiB. Take into account S3 clients +will perform multipart uploads, so this variable doesn't limit the +maximum file size, just what amount of bytes Traefik considers before +closing the connection. + ## Backups > In development, not currently reliable diff --git a/compose.yml b/compose.yml index ba59129..c02b530 100644 --- a/compose.yml +++ b/compose.yml @@ -35,6 +35,7 @@ services: - "backupbot.backup=true" - "backupbot.backup.pre-hook=/garage meta snapshot --all" - "backupbot.backup.path=/var/lib/garage/meta/snapshots/,/var/lib/garage/meta/cluster_layout,/var/lib/garage/meta/data_layout,/var/lib/garage/meta/node_key,/var/lib/garage/meta/node_key.pub" + - "traefik.http.middlewares.${STACK_NAME}-buffering.buffering.maxRequestBodyBytes=${MAX_REQUEST_BODY_BYTES:-5368709120}" volumes: - "${LOCAL_FOLDER_META:-meta}:/var/lib/garage/meta" - "${LOCAL_FOLDER_DATA:-data}:/var/lib/garage/data"