从远程服务器获取文件路径

时间:2018-08-13 14:57:25

标签: python django server

嗨,我很难从远程服务器获取文件路径。这里有没有人可以帮助我?

我想要实现的是播放已保存在远程服务器中的音频文件。

这就是我的代码现在的样子。这还行不通。

<audio controls>
<source 
src="user@host:/file/path/from/remote/server/{{record.filename}}" type="audio/ogg">
</audio>

我想知道的是如何获得此路径user@hostname:/file/path/from/remote/server

我正在将Django与Python配合使用。

非常感谢任何可以提供帮助的人!

1 个答案:

答案 0 :(得分:0)

您必须从views.py函数渲染模板(在问题中显示了模板的一部分)。在该视图中,将文件下载到本地:

import requests
# Before rendering the template 
r = requests.get("user@host:/file/path/from/remote/server/" + record.filename)
local_file = "/path/on/local/" + record.filename
with open(local_file, 'wb') as f:
    f.write(r.content)
# Now pass the location of the local file in template render 
...render(local_file = local_file)

在模板中,进行相应的更改

<audio controls>
<source 
src="{{local_file}}" type="audio/ogg">
</audio>

现在,如果您担心本地内存或混乱情况,则无需一次下载所有文件。此外,为了提高效率,您可以通过在记录中引入bool“已下载”字段来维护所有已下载文件的映射。然后,您可以在下载之前检查此字段,并且仅在本地尚未下载时下载。