【发布时间】:2018-12-11 13:47:50
【问题描述】:
我正在制作一个在 Docker 容器中运行的 Flask 应用程序。到目前为止一切正常,但现在我想创建一个 GET 方法,它应该返回一个要由用户下载的文件。为此,我尝试了 Flask 函数 send_file 和 send_from_directory。当我按原样运行我的应用程序时,它们都可以工作,但是一旦我将它放入 Docker 容器中,事情就会停止工作。
如果我使用send_file,我会收到file not found 错误,尽管我可以使用相同的文件路径调用print(os.path.isfile),它会显示出来。
如果我使用正确的路径和文件名使用send_from_directory,那么我会得到一个 404 错误。
同样,这仅适用于从 Docker 容器运行时。会不会是权限问题?
方法示例:
class DownloadLog(Resource):
def get(self):
print(os.path.isfile('logfile.log') # Returns 'True'
return send_from_directory('.', 'logfile.log')
【问题讨论】:
-
权限问题会抛出 403 Forbidden 或未授权,而不是 404。所以情况可能并非如此