如何在Node.js中的服务器目录上方获取文件

乌拉尔·拜汉(Ural Bayhan)

我正在尝试使用node.js服务器提供音频文件。问题是,我希望能够在计算机上获取任何音频文件,但是我不知道如何在html中制作音频元素以与服务器上方的目录一起使用。这个问题,我发现,但由于该文件,我希望能够得到随时更改它并没有真正的帮助。

该项目基本上是浏览器上的媒体播放器。它将在LAN上,因此为计算机中的所有内容提供服务并不是真正的问题。我已经在对图像,JavaScript和CSS使用Express的静态功能了。该应用程序使用nedb保留路径,名称和其他信息

jfriend00

首先,您必须了解node.js默认情况下不提供任何文件。因此,您必须手动编码每个单独的请求,以便该/foo请求从某些特定的文件或代码中生成内容。或者,您必须创建一些映射集,在其中/content/foo告诉服务器读取服务器上的相应目录,例如/myservercontent/foo

而且,有各种工具可帮助您为文件的整个目录层次结构(例如express.static()创建此映射但是,任何这样的映射都具有显式的根,其中所有请求都相对于某个根。您可以定义该根目录在服务器上的位置。它甚至可以是服务器的根目录(尽管出于各种原因从不建议这样做)。通常,此根目录设置为硬盘上的某个父目录,该目录仅在该父目录下包含公共Web内容。这样一来,您就永远不会造成一些随机的Web用户可以访问您不想公开的系统文件(例如HTTPs证书,数据库,服务器代码,密码文件等)的情况。 。

综上所述,node.js允许您执行几乎所有您想做的事情。如果您想访问硬盘驱动器上任意位置的随机文件(我绝对不建议这样做),则可以轻松编写node.js的代码来实现。有几种方法可以实现它。一种简单的方法是仅构造一个接受查询参数的路由,其中​​查询参数指定所需文件的路径,然后让该路由句柄读取该文件并返回它。这是一个巨大的安全漏洞,足以推动卡车通过,所以我永远不会推荐这样做。

相反,您真正应该做的是收集希望通过服务器提供的所有文件,并将它们放入一个安全的目录层次结构中,然后允许访问该特定目录层次结构中的文件,而不是硬盘上的其他任何位置。


现在,您已经对自己的工作进行了更多的解释,这是一个想法:

  1. 扫描本地硬盘驱动器,以识别您认为可以安全共享的所有音频文件。请务必非常小心,因为在这里的错误可能会带来很大的安全漏洞,因此您决定分享什么。由于我们不了解完整的上下文,因此您将不得不评估您在此处所做的安全风险。

  2. 收集此音频文件列表时,请将列表保存到服务器正在使用的某种数据存储中,以便您可以在以后的任何时间快速访问该列表。我建议您为每个音频文件创建一个唯一的ID,以使其将来更容易引用。

  3. 然后,您可以为远程用户提供这些音频文件的列表,然后他们可以选择一个。然后,可以将他们选择的音频文件作为播放特定音频文件的请求的一部分发送到服务器。我建议只应通过ID请求文件(出于安全原因),尽管您的用户界面可能会选择显示原始路径名(如果重要或相关的话)。

  4. 当您的服务器收到播放具有特定ID的音频文件的请求时,它可以查询其数据存储以找出哪个音频文件是具有特定ID的音频文件。这是重要的一步,因为强制客户端按ID(而不是按路径)请求文件使得客户端只能请求您之前扫描过的音频文件,并认为可以安全公开。远程客户端可以请求其他一些您不想共享的文件,因此不会存在任何漏洞。

  5. 服务器在数据存储中查找并找到具有该特定ID的音频文件后,便可以从数据存储中查找本地路径,然后可以读取音频文件并将其发送/传输到远程客户端。


例如,在第3步和第4步中,客户端可以发送如下所示的URL:

http:// someserver / play / 5934902

那就是播放ID为的音频文件的请求5934902然后,您的服务器将具有用于/play/:id该ID的路由处理程序,然后执行步骤4和5。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从URL中的node.js服务器文件夹中获取图像?

来自分类Dev

如何在Node.js中的服务器上创建CSV文件

来自分类Dev

Node.js如何在服务器上的json文件中删除\编辑数据

来自分类Dev

如何在Node.js服务器中包含JavaScript文件的功能?

来自分类Dev

如何在Spring bean配置文件中的tomcat中获取服务器主目录路径

来自分类Dev

如何在 Node.js 中从客户端获取数据到服务器(不带 url 参数)?

来自分类Dev

如何在Node.js中将文件从服务器发送到客户端

来自分类Dev

如何在Node.js服务器上用XML文件填充ElasticSearch?

来自分类Dev

如何在运行Node.js的服务器上保存文件?

来自分类Dev

如何在部署在 nginx 中的 https 网站中访问自己的 Node.js 服务器

来自分类Dev

如何在我的网站服务器而不是PC本地服务器中运行node.js

来自分类Dev

如何在目录中的服务器上列出文件名?

来自分类Dev

您如何在Node.js中为服务器应用程序构建测试?

来自分类Dev

如何在Node.js中获得服务器正常运行时间?

来自分类Dev

如何在Ionic移动应用中运行Node.js服务器?

来自分类Dev

如何在Apache服务器中运行Node.js应用程序

来自分类Dev

如何在Node.js服务器中执行JavaScript

来自分类Dev

如何在Ubuntu中设置Node.js应用服务器

来自分类Dev

如何在node.js服务器中实现-toDataURL()函数?

来自分类Dev

如何在Node.js中检查DNS服务器的更改

来自分类Dev

如何在openVZ服务器中安装node.js及其依赖项

来自分类Dev

如何在在线服务器上启动Node JS服务器?

来自分类Dev

如何从服务器请求中获取文件名?

来自分类Dev

如何从服务器请求中获取文件名?

来自分类Dev

如何获取运行node.js的服务器名称?

来自分类Dev

如何获取运行node.js的服务器名称?

来自分类Dev

如何将文件从目录A移动到远程服务器中的目录B?

来自分类Dev

如何将文件从目录A移动到远程服务器中的目录B?

来自分类Dev

如何在服务器端Page方法中获取Ajax发送的发布文件

Related 相关文章

  1. 1

    如何从URL中的node.js服务器文件夹中获取图像?

  2. 2

    如何在Node.js中的服务器上创建CSV文件

  3. 3

    Node.js如何在服务器上的json文件中删除\编辑数据

  4. 4

    如何在Node.js服务器中包含JavaScript文件的功能?

  5. 5

    如何在Spring bean配置文件中的tomcat中获取服务器主目录路径

  6. 6

    如何在 Node.js 中从客户端获取数据到服务器(不带 url 参数)?

  7. 7

    如何在Node.js中将文件从服务器发送到客户端

  8. 8

    如何在Node.js服务器上用XML文件填充ElasticSearch?

  9. 9

    如何在运行Node.js的服务器上保存文件?

  10. 10

    如何在部署在 nginx 中的 https 网站中访问自己的 Node.js 服务器

  11. 11

    如何在我的网站服务器而不是PC本地服务器中运行node.js

  12. 12

    如何在目录中的服务器上列出文件名?

  13. 13

    您如何在Node.js中为服务器应用程序构建测试?

  14. 14

    如何在Node.js中获得服务器正常运行时间?

  15. 15

    如何在Ionic移动应用中运行Node.js服务器?

  16. 16

    如何在Apache服务器中运行Node.js应用程序

  17. 17

    如何在Node.js服务器中执行JavaScript

  18. 18

    如何在Ubuntu中设置Node.js应用服务器

  19. 19

    如何在node.js服务器中实现-toDataURL()函数?

  20. 20

    如何在Node.js中检查DNS服务器的更改

  21. 21

    如何在openVZ服务器中安装node.js及其依赖项

  22. 22

    如何在在线服务器上启动Node JS服务器?

  23. 23

    如何从服务器请求中获取文件名?

  24. 24

    如何从服务器请求中获取文件名?

  25. 25

    如何获取运行node.js的服务器名称?

  26. 26

    如何获取运行node.js的服务器名称?

  27. 27

    如何将文件从目录A移动到远程服务器中的目录B?

  28. 28

    如何将文件从目录A移动到远程服务器中的目录B?

  29. 29

    如何在服务器端Page方法中获取Ajax发送的发布文件

热门标签

归档