Como Transferir Arquivos Grandes desde localhost para o Mundo
Introdução
O upload de arquivos é uma funcionalidade comum em muitos aplicativos web. No entanto, quando se trata de arquivos grandes, como vídeos, imagens de alta resolução ou conjuntos de dados volumosos, pode ser desafiador lidar com o processo de upload de maneira eficiente. Este tutorial irá mostrar como construir um servidor robusto que aceita arquivos de até 5 GB de tamanho, usando o Flask, um framework web leve e flexível.
Problema
Ao construir um aplicativo que requer o upload de arquivos grandes, é importante garantir que o servidor possa lidar com esses arquivos de forma eficiente e segura. Muitos servidores web têm limitações no tamanho máximo de arquivo que podem ser enviados, o que pode ser problemático ao lidar com arquivos grandes. Este script resolve esse problema ao configurar um servidor Flask para aceitar arquivos de até 5 GB de tamanho.
Requisitos
Antes de começar, certifique-se de ter o Python e o Flask instalados em seu sistema. Você pode instalar o Flask usando pip:
pip install Flask
Passo a Passo
Aqui está como você pode criar um servidor para upload de arquivos grandes usando Flask:
mkdir upload_server
cd upload_server
Dentro do diretório do seu projeto, crie um arquivo chamado app.py e adicione o seguinte código:
from flask import Flask, render_template, request
app = Flask(__name__)
# Define o tamanho máximo de conteúdo (5 GB neste exemplo)
app.config['MAX_CONTENT_LENGTH'] = 5 * 1024 * 1024 * 1024 # 5 GB em bytes
@app.route('/')
def index():
return render_template('upload.html')
@app.route('/upload', methods=['POST'])
def upload_file():
try:
# O código de upload permanece o mesmo
if 'file' not in request.files:
return 'Nenhum arquivo presente na solicitação', 400
file = request.files['file']
if file.filename == '':
return 'Nome de arquivo inválido', 400
save_path = './'
file.save(save_path + file.filename)
return 'Upload bem-sucedido', 200
except Exception as e:
return f'Erro durante o upload: {str(e)}', 500
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=True)
Recomendados pelo LinkedIn
Crie um arquivo chamado upload.html dentro de um diretório chamado templates. Este arquivo será usado para exibir o formulário de upload:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Upload de Arquivos</title>
</head>
<body>
<h1>Upload de Arquivos Grandes</h1>
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" accept=".csv, .xlsx, .txt">
<input type="submit" value="Enviar">
</form>
</body>
</html>
Abra um terminal, navegue até o diretório do seu projeto e execute o arquivo app.py:
python app.py
Abra um navegador da web e vá para http://localhost:5000. Você verá um formulário de upload de arquivos. Selecione um arquivo grande para fazer o upload e clique em "Enviar". O arquivo será carregado para o diretório do servidor.
Último Passo: A grande jogada para Acesso Externo - Ngrok
Embora o servidor Flask esteja funcionando localmente, você pode querer compartilhar seu aplicativo com outras pessoas ou acessá-lo de outros dispositivos. Para isso, você pode usar o Ngrok, uma ferramenta que cria túneis seguros para expor servidores locais para a internet.
./ngrok http 5000
Isso iniciará o Ngrok e atribuirá um URL público ao seu servidor Flask, que será exibido no terminal.
Com o Ngrok, você pode cruzar fronteiras e tornar seu servidor Flask acessível globalmente de forma rápida e segura. Lembre-se de que o URL fornecido pelo Ngrok é temporário e mudará sempre que você reiniciar o Ngrok. Se você deseja um URL estável, considere se inscrever em um plano pago do Ngrok.