Use un navegador para acceder al archivo PDF cargado en el servidor, asumiendo que 20190412/171534680646.pdf
el archivo /srv/upload/rcb/
está bajo
Ahora aquí queremos simular el archivo pdf bajo /sfile
la dirección real implementando la dirección de acceso , de la siguiente manera:/srv/upload/rcb/
- La configuración
se configura en el servidor nginx de la siguiente manera:
set $original_root "/srv/upload/rcb/"; # pdf上传后存放路径
location /sfile {
internal; # 重点
alias $original_root;
}
- Interno se refiere al comando interno de Nginx, lo que significa que solo se pueden usar solicitudes internas y las solicitudes externas devuelven 404
- código pitón
@restapi.bp.route('/sfile/<name:[A-Za-z0-9/._]+>', methods=["GET"])
async def sfile(request, name):
r = json({"status": 0})
r.headers['Content-Type'] = 'application/pdf' # 文件类型
r.headers['X-Accel-Redirect'] = f'/sfile/{name}' #重定向
return r
- Al acceder a archivos como imágenes/videos/PDF, debe especificar el tipo de archivo en los encabezados ['Content-Type']; de lo contrario, el tipo predeterminado es
application/json
- headers['X-Accel-Redirect'] envía una solicitud interna al servidor, y Nginx reenviará el enlace a la dirección real
Dirección de solicitud: http://localhost:8080/XXX/sfile/20190412/171534680646.pdf
Si no es accesible, verifique que internal
la Content-Type
suma sea adecuada.