我在 Cloud Run 上有 Django 项目。当我从具有以下代码的页面下载小文件时。
def download_view(request,pk):
file_path = f'media/{pk}.mp3'
name = f'{pk}.mp3'
with open(file_path, 'rb') as f:
response = HttpResponse(f.read(), content_type='audio/wav')
response['Content-Disposition'] = f'attachment; filename={name}'
return response
它工作正常。但是,当我下载一个文件(50MB)时。我得到这张照片的错误。
Cloud run的log是这样的。我找不到任何回溯日志。
2021-05-06 12:00:35.668 JSTGET500606 B66 msChrome 72 https://***/download/mp3/2500762/
2021-05-06 11:49:49.037 JSTGET500606 B61 msChrome 72 https://***/download/mp3/2500645/
我不确定。此错误是否与下载错误有关。
2021-05-06 16:48:32.570 JSTResponse size was too large. Please consider reducing response size.
我认为这是上传文件大小错误。所以这与下载错误的主题无关。
当我在本地运行 Django 时,然后下载相同的 50MB 文件。我可以下载它。我认为这个下载错误与 Cloud run 有关。它在请求/响应后停止。所以我认为这个错误是由 Cloud Run 引起的。当我还在下载文件时,它已停止。
我不知道如何解决这个下载错误。如果您有任何解决方案,请帮助我!
最佳答案
Cloud Run HTTP 请求/响应大小为 limited to 32Mb .使用 multipart/form-data
发送大文件的 block ,而不是直接发送整个文件。
关于python - 如何在 Django 中从 Cloud Run 下载大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67414807/