Skip to content
Snippets Groups Projects
Commit e66d0994 authored by RichardHeise's avatar RichardHeise
Browse files

Done

parents
No related branches found
No related tags found
No related merge requests found
# Usar a imagem oficial do Python como base
FROM python:3.9-slim
# Define a variável de ambiente para desabilitar a criação de arquivos .pyc
ENV PYTHONDONTWRITEBYTECODE 1
# Define a variável de ambiente para não armazenar em cache as instalações do Python
ENV PYTHONUNBUFFERED 1
# Define o diretório de trabalho no contêiner
WORKDIR /app
# Instala as dependências do sistema
RUN apt-get update \
&& apt-get install -y --no-install-recommends gcc \
&& rm -rf /var/lib/apt/lists/*
# Copia os arquivos de código para o contêiner
COPY . .
# Instala as dependências do Python
RUN pip install --no-cache-dir -r requirements.txt
# Comando para iniciar o servidor WSGI (substitua "app:app" pelo nome do módulo e da instância da aplicação Flask)
CMD ["gunicorn", "--bind", "0.0.0.0:3334", "inline:app"]
#!/bin/python3
from flask import Flask, send_file, make_response
import requests
app = Flask(__name__)
#########################################################################################
@app.route('/inline/<file_id>', methods=['GET'])
def download_inline_pdf(file_id):
try:
pdf_url = f"https://api.portalmec.c3sl.ufpr.br/v1/learning_objects/{file_id}/download"
response = requests.get(pdf_url, verify=False) # Desativa a verificação do certificado SSL
response.raise_for_status()
print(f"""Headers:
{response.headers}
""")
# Get filename from Content-Disposition header
filename = None
if 'Content-Disposition' in response.headers:
content_disposition = response.headers['Content-Disposition']
start_index = content_disposition.find('filename=') + len('filename=')
filename = content_disposition[start_index:].strip('"')
# Make response with PDF content and inline display header
pdf_content = response.content
inline_response = make_response(pdf_content)
inline_response.headers['Content-Disposition'] = f'inline; filename="{filename}"'
inline_response.headers['Content-Type'] = response.headers['Content-Type']
return inline_response
except Exception as e:
return str(e), 500
if __name__ == "__main__":
app.run(port=3334)
version: '3'
services:
flask_app:
build:
context: .
dockerfile: Dockerfile.prod
ports:
- "3334:3334"
volumes:
- ./app:/app
environment:
- FLASK_ENV=production
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment