代码:
app.route('/download/<bucket_name>/<file_id>') def download(bucket_name,file_id): params = request.json or request.args response = download_file(bucket_name, file_id, offset=params.get("offset"), length=params.get("length"), version_id=params.get("version_id"), request_headers=request.headers ) if response: data = response.data def send_chunk(stream,chunk=2048): step = int(len(stream)/chunk)+1 for i in range(step): start = i*chunk data = stream[start:start+chunk] if not data: break yield data excluded_headers = ['content-encoding', 'content-length', 'transfer-encoding', 'connection'] headers = [(name, value) for (name, value) in dict(response.headers).items() if name.lower() not in excluded_headers] return Response(stream_with_context(send_chunk(data)), headers=headers ) return Response("Not Found",404)
必须将minio响应的headers放入flask的response中,app端才可正常打开