Limite de upload
Um upload passa por várias camadas antes de chegar ao Signer. Cada camada tem o seu próprio limite de tamanho. O upload só funciona se o arquivo couber em todas elas. Por padrão, o Signer aceita arquivos de até 100 MB.
As camadas
| Camada | Configuração | Padrão | O que acontece quando o arquivo passa do limite |
|---|---|---|---|
| Interface web | General:MaxFileSize | 104857600 (100 MB) | A tela mostra Limite de tamanho atingido antes de enviar o arquivo |
| Servidor do Signer (Kestrel ou IIS in-process) | General:MaxUploadSizeInBytes | 106954752 (102 MB) | O servidor recusa a requisição com o código de status 413 |
| IIS | maxAllowedContentLength no web.config | 1073741824 (1 GB) | O IIS recusa a requisição antes de ela chegar ao Signer |
| Proxy reverso (Nginx) | client_max_body_size | 1m (1 MB), se a diretiva não existir | O Nginx recusa a requisição com o código de status 413 |
A interface web envia os arquivos maiores que General:SegmentedUploadThresholdMB (padrão: 10 MB) em partes. Por
isso, um proxy com limite pequeno pode funcionar na interface web e falhar nas chamadas da API, que enviam o arquivo
inteiro em uma requisição.
Como aumentar o limite
Siga os passos para o tamanho que você quer aceitar. O exemplo usa 200 MB (209715200 bytes).
-
Na seção
General, definaMaxFileSizecom o tamanho do arquivo:"General": {"MaxFileSize": 209715200,"MaxUploadSizeInBytes": 210763776} -
Defina
MaxUploadSizeInBytescom pelo menos 1 MB (1048576bytes) a mais queMaxFileSize. Essa folga cobre o envelope da requisição multipart (o formato que carrega o arquivo e os outros campos do formulário). -
Se o Signer roda no IIS e o tamanho passa de 1 GB, aumente
maxAllowedContentLengthnoweb.configda pasta do site. O pacote do Signer traz esse arquivo. A cada atualização, refaça a alteração. -
Se há um Nginx na frente do Signer, defina
client_max_body_sizecom o mesmo valor deMaxUploadSizeInBytesno blocoserverdo site:client_max_body_size 201m;Faça o mesmo em qualquer outro proxy ou balanceador de carga entre o usuário e o Signer.
-
Reinicie o Signer e recarregue o Nginx (
nginx -s reload).
Edite o arquivo JSON com um editor de texto simples. Aspas curvas (“ e ”), comuns em texto copiado de um e-mail ou
documento, deixam o JSON inválido, e a aplicação não inicia.
Arquivos de centenas de MB usam mais memória e tempo no processamento do documento. Teste o tamanho que você quer aceitar em homologação antes de mudar a produção.
Armazenamento
O Signer guarda o arquivo original e as versões que o documento ganha durante o fluxo, como as versões assinadas. O espaço usado por um documento é maior que o tamanho do arquivo enviado. Considere isso ao aumentar o limite e ao planejar o Blob Storage.