# Uploads of bigger files are failing with SignatureDoesNotMatch

**URL:** <https://forum.pydio.com/t/uploads-of-bigger-files-are-failing-with-signaturedoesnotmatch/3989>\
**Category:** Pydio Cells\
**Created:** [August 16, 2021, 9:53pm UTC](https://forum.pydio.com/t/uploads-of-bigger-files-are-failing-with-signaturedoesnotmatch/3989 "2021-08-16T21:53:38Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![maltechx](https://yyz2.discourse-cdn.com/flex032/user_avatar/forum.pydio.com/maltechx/32/1491_2.png) [@maltechx](https://forum.pydio.com/u/maltechx)\
**Post date:** [August 16, 2021, 9:53pm UTC](https://forum.pydio.com/t/uploads-of-bigger-files-are-failing-with-signaturedoesnotmatch/3989/1 "2021-08-16T21:53:38Z")

</div>

Hello,

I did setup Cells in a Container with Minio S3 as storage backend and behind Nginx as proxy. So far everything seems to work. I can even upload smaller files like images.  
But if I try to upload bigger files with 1GB or 4GB, they are instantly failing with:

```auto
<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>
<Resource>/io/personal-files/somefile.mkv</Resource>
<RequestId>169BE728547700F2</RequestId>
<HostId>3L137</HostId>
</Error>

```

For me the weird thing is, that there aren’t any logs. I mean there are logs for some tasks, but none related to this upload. On Minio there are also no logs related to this upload.

Has anyone any idea what it could be or even had the same issue?

Nginx Config:

```auto
client_max_body_size 10G;
    location / {
        proxy_buffering off;
        proxy_pass https://localhost:8080;
        proxy_set_header X-Real-IP $remote_addr;
        # this line is required for cells-sync
        # grpc_pass grpcs://localhost:8080;
    }

    location /ws/ {
        proxy_buffering off;
        proxy_pass https://localhost:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }

```

---

<div class="post-metadata">

**Author:** ![Jodli](https://avatars.discourse-cdn.com/v4/letter/j/898d66/32.png) [@Jodli](https://forum.pydio.com/u/Jodli)\
**Post date:** [August 26, 2021, 8:41am UTC](https://forum.pydio.com/t/uploads-of-bigger-files-are-failing-with-signaturedoesnotmatch/3989/2 "2021-08-26T08:41:19Z")

</div>

I have exactly the same problem. I am also using nginx.

The problem seems to be connected to multipart upload. When my instance is set to multipart-upload when files are bigger than 104857600 bytes I can upload files up to about 100 mb without problems. When I reduce this number, even smaller files fail to upload.

---

<div class="post-metadata">

**Author:** ![zayn](https://avatars.discourse-cdn.com/v4/letter/z/a87d85/32.png) [@zayn](https://forum.pydio.com/u/zayn)\
**Post date:** [August 26, 2021, 11:39am UTC](https://forum.pydio.com/t/uploads-of-bigger-files-are-failing-with-signaturedoesnotmatch/3989/3 "2021-08-26T11:39:27Z")

</div>

Hello @maltechx and @Jodli ,

After some testing with multiple configuration, could you try to use those lines in your config and then tell me if you still observe the issue,

```auto
server {
    server_name myproxy.net;
    # To allow special characters in headers
    ignore_invalid_headers off;
    # Allow any size file to be uploaded.
    # Set to a value such as 1000m; to restrict file size to a specific value
    client_max_body_size 0;
    # To disable buffering
    proxy_buffering off;

    location / {
        proxy_ssl_verify off;

        proxy_pass https://cells:8080;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;

        proxy_connect_timeout 300;
        # Default is HTTP/1, keepalive is only enabled in HTTP/1.1
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        chunked_transfer_encoding off;
    }
}

```

---

<div class="post-metadata">

**Author:** ![maltechx](https://yyz2.discourse-cdn.com/flex032/user_avatar/forum.pydio.com/maltechx/32/1491_2.png) [@maltechx](https://forum.pydio.com/u/maltechx)\
**Post date:** [August 26, 2021, 12:47pm UTC](https://forum.pydio.com/t/uploads-of-bigger-files-are-failing-with-signaturedoesnotmatch/3989/4 "2021-08-26T12:47:38Z")

</div>

Thank you for your response. I tried this config + some ssl stuff and this error is still present 🙁

---

<div class="post-metadata">

**Author:** ![Jodli](https://avatars.discourse-cdn.com/v4/letter/j/898d66/32.png) [@Jodli](https://forum.pydio.com/u/Jodli)\
**Post date:** [August 26, 2021, 3:06pm UTC](https://forum.pydio.com/t/uploads-of-bigger-files-are-failing-with-signaturedoesnotmatch/3989/5 "2021-08-26T15:06:19Z")

</div>

I tried it as well. No luck ☹

Is there a debug mode to maybe find out where it is going wrong?  
Maybe some specific nginx / linux setting that disallows multipart-upload?

---

<div class="post-metadata">

**Author:** ![c12simple](https://yyz2.discourse-cdn.com/flex032/user_avatar/forum.pydio.com/c12simple/32/90_2.png) [@c12simple](https://forum.pydio.com/u/c12simple)\
**Post date:** [August 31, 2021, 7:44am UTC](https://forum.pydio.com/t/uploads-of-bigger-files-are-failing-with-signaturedoesnotmatch/3989/6 "2021-08-31T07:44:59Z")

</div>

Hello,

In docker file, please add “:port\_number” at the end of CELLS\_EXTERNAL

`CELLS_EXTERNAL=https://cells.domain.com:443`

---

<div class="post-metadata">

**Author:** ![maltechx](https://yyz2.discourse-cdn.com/flex032/user_avatar/forum.pydio.com/maltechx/32/1491_2.png) [@maltechx](https://forum.pydio.com/u/maltechx)\
**Post date:** [August 31, 2021, 8:20am UTC](https://forum.pydio.com/t/uploads-of-bigger-files-are-failing-with-signaturedoesnotmatch/3989/7 "2021-08-31T08:20:34Z")

</div>

This part of my docker-compose.yml, so I already had the port in CELLS\_EXTERNAL.

```auto
  cells:
    image: pydio/cells:latest
    restart: unless-stopped
    ports: ["8080:8080"]
    environment:
      - CELLS_EXTERNAL=https://cells.domain.com:443
      - CELLS_LOG_LEVEL=debug
        #- CELLS_NO_SSL=1
        #- CELLS_NO_TLS=1
      - CELLS_BIND=:8080
    volumes:
      - ./data:/var/cells/data
      - ./cells:/var/cells

```

---

<div class="post-metadata">

**Author:** ![Jodli](https://avatars.discourse-cdn.com/v4/letter/j/898d66/32.png) [@Jodli](https://forum.pydio.com/u/Jodli)\
**Post date:** [September 5, 2021, 1:24pm UTC](https://forum.pydio.com/t/uploads-of-bigger-files-are-failing-with-signaturedoesnotmatch/3989/8 "2021-09-05T13:24:23Z")

</div>

@maltechx  
It is just a shot in the dark, but maybe adding `network_mode: "host"` might solve your problem?

@c12simple  
Thanks for your help. You pointed me to the solution 🙂  
For me it was not the port, but the wrong url in CELLS\_EXTERNAL (I had used “localhost” instead of the “real” one.

For everybody else having the same problem, this is my working setup (I am using an external db):

nginx:

```auto
server {
	server_name example.com;
	client_max_body_size 5000M;
	ignore_invalid_headers off;

	location / {
		proxy_pass https://127.0.0.1:42246;
		proxy_set_header Host $host;
		proxy_buffering off;
		proxy_set_header X-Forwarded-Proto https;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Host $server_name;
		
		proxy_connect_timeout 300;
		proxy_http_version 1.1;
		proxy_set_header Connection "";
		chunked_transfer_encoding off;
	}
	location /ws/ {
		proxy_buffering off;
		proxy_pass https://127.0.0.1:42246;
		proxy_set_header Host $host;
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection "Upgrade";
		proxy_read_timeout 86400;
	}
	
	listen [::]:443 ssl; # managed by Certbot
	listen 443 ssl; # managed by Certbot
	ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
	ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
	include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
	ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server {
	if ($host = example.com) {
		return 301 https://$host$request_uri;
	} # managed by Certbot

	listen 80;
	listen [::]:80;

	server_name example.com;
	return 404; # managed by Certbot
}

```

docker-compose.yml

```auto
version: '3.5'
services:
  cells:
    image: pydio/cells:latest
    restart: unless-stopped
    network_mode: "host"
    ports:
      - "42246:8080"
    environment:
      - CELLS_LOG_LEVEL=production
      - CELLS_EXTERNAL=https://example.com/
      - CELLS_BIND=:42246
    volumes:
      - "/var/www/vhosts/example.com/files/data:/var/cells/data"
      - "/var/www/vhosts/example.com/files:/var/cells"

```

---

<div class="post-metadata">

**Author:** ![c12simple](https://yyz2.discourse-cdn.com/flex032/user_avatar/forum.pydio.com/c12simple/32/90_2.png) [@c12simple](https://forum.pydio.com/u/c12simple)\
**Post date:** [September 6, 2021, 6:33am UTC](https://forum.pydio.com/t/uploads-of-bigger-files-are-failing-with-signaturedoesnotmatch/3989/9 "2021-09-06T06:33:00Z")

</div>

> [@Jodli](#):
>
> ```auto
> ports:
> - "42246:8080"
> 
> ```

Hi,  
Try to open 42246 port on docker  
So

```auto
ports:
      - "42246:42246"

```

---

<div class="post-metadata">

**Author:** ![zayn](https://avatars.discourse-cdn.com/v4/letter/z/a87d85/32.png) [@zayn](https://forum.pydio.com/u/zayn)\
**Post date:** [September 8, 2021, 2:48pm UTC](https://forum.pydio.com/t/uploads-of-bigger-files-are-failing-with-signaturedoesnotmatch/3989/10 "2021-09-08T14:48:50Z")

</div>

Hello @maltechx ,

Could you try with a simpler nginx config lets also review the settings,

- CELLS\_BIND=0.0.0.0:8080

> [@maltechx](#):
>
> ```auto
> environment:
> - CELLS_EXTERNAL=https://cells.domain.com:443
> 
> ```

Perfect you already have this set.

then lets try with

```auto
    client_max_body_size 0;
    # To disable buffering
    proxy_buffering off;

    location / {
        proxy_pass https://cells:8080;
    }

```

(here **cells** being the name of my _cells_ container in my compose.yaml file)

---

<div class="post-metadata">

**Author:** ![maltechx](https://yyz2.discourse-cdn.com/flex032/user_avatar/forum.pydio.com/maltechx/32/1491_2.png) [@maltechx](https://forum.pydio.com/u/maltechx)\
**Post date:** [September 8, 2021, 3:41pm UTC](https://forum.pydio.com/t/uploads-of-bigger-files-are-failing-with-signaturedoesnotmatch/3989/11 "2021-09-08T15:41:54Z")

</div>

Hello @zayn ,

this my nginx config:

```auto
server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name cells.domain.com;
    ssl_certificate /etc/letsencrypt/live/cells.domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/cells.domain.com/privkey.pem;
    ssl_dhparam /etc/nginx/dhparam;
    client_max_body_size 0;
    proxy_buffering off;
    location / {
        proxy_pass https://127.0.0.1:8080;
    }
}

```

docker-compose:

```auto
  cells:
    image: pydio/cells:latest
    restart: unless-stopped
    ports: ["8080:8080"]
    environment:
      - CELLS_EXTERNAL=https://cells.domain.com:443
      - CELLS_LOG_LEVEL=debug
      - CELLS_BIND=0.0.0.0:8080
    volumes:
      - ./data:/var/cells/data
      - ./cells:/var/cells

```

I changed it and removed a few options but I’m still facing this issue ☹

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex032/uploads/pydio/original/2X/6/61f19fa52ec15fd4250db51aea351adba0e831fd.png) [@system](https://forum.pydio.com/u/system)\
**Post date:** [November 7, 2021, 3:42pm UTC](https://forum.pydio.com/t/uploads-of-bigger-files-are-failing-with-signaturedoesnotmatch/3989/12 "2021-11-07T15:42:15Z")

</div>

Closed on November 7, 2021, 3:42pm UTC

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
