如何访问本地目录,将其压缩并发布到端点 仅使用客户端的 Javascript

How to access a local directory, zip it and POST it to an endpoint Using only Javascript from client side

提问人:Victor Andres Aguirre Fernande 提问时间:11/29/2022 最后编辑:Victor Andres Aguirre Fernande 更新时间:11/29/2022 访问量:41

问:

完全免责声明 我对 javascript 的了解真的很基础

有没有办法使用 javascript 从客户端执行以下操作?

  1. 访问本地文件系统。
  2. 压缩整个目录。
  3. 使用 POST 请求将 zip 发送到 API 端点。

上下文

我正在做一个自动化项目(使用 Robotframework 和 Selenium),在远程主机中测试 webUI。在开始测试之前,我定义了一个自定义,以便 chrome 将浏览器会话中的所有文件都放在那里,webUI 测试完成后,我访问 zip 内容并将其发送到我在 Flask 中制作的端点。user-data-diruser-data-dir

我想创建一个持久性,以便下一个具有登录用户作为先决条件的测试用例可以从这个自定义会话开始,我不需要运行日志记录测试用例 --> 我想遵循 Atomic 测试用例 approuch

目前,我有一个 HTML 表单,我在测试完成后使用它,换句话说,在测试完成后,我打开另一个选项卡并导航到我有一个表单的 flask 服务器端点,然后提交文件夹。

要提交我正在使用的文件夹 webkitdir

<!doctype html>
<html>
  <head>
    <title>File Upload</title>
  </head>
  <body>
    <h1>File Upload</h1>
    <form method="POST" action="{{ url_for('upload.upload') }}" enctype="multipart/form-data" >
      <p><input type="file" name="file" webkitdirectory></p>
      <p><input type="submit" value="Submit"></p>
    </form>
  </body>
</html>

我想改变这种方法并改用 javascript。

为什么在测试用例开始之前不使用 javascript 登录,这将满足先决条件,您不需要使用登录屏幕或玩 -> 是的,听起来更好,但是,我需要使用 did 继续沿着这条路走下去。user-data-diruser-data-dir

我知道使用客户端 javascript 访问本地文件系统不是一个好习惯,但我没有其他选项来访问它。不允许使用 SSH,并且我无法在远程计算机上运行守护程序或任何后台进程。 RDP 或 RDC 也不可用。

我阅读的所有示例都包含 AJAX、JQUERY 或其他库,但是,首先,我不熟悉,所以我花了很长时间才发现它们不合适,因为它们都需要 HTML 表单,而且我想避免 HTML。

JavaScript gzip 客户端

评论

0赞 Ouroborus 11/29/2022
如果你的意思是“使用浏览器”,你没有。您能做的最好的事情是提示用户使用 选择文件。这主要是由于浏览器的安全性。您可能可以使用的其他路径是 RDP(远程桌面)或 RPC(远程过程调用)。<input type="file">
1赞 Ouroborus 11/29/2022
我们需要更多信息,了解您的解决方案被拒绝的原因。这个网站是关于编程的,而不是关于处理公司政策的。此外,由于您似乎已经用尽了 javascript 选项,因此我们只能提供非 javascript 替代品。
0赞 Victor Andres Aguirre Fernande 11/29/2022
@ouroburus明白了,我知道这边的目的,但我想说,我知道还有其他方法可以做到这一点,而且可能更有效和安全。我已经有一个带有表格的解决方案,但可以说也不是一个好的解决方案。RDP 和 RPC 不可行,因为远程主机不支持它们。不,关于是否可能,我不能确定,我对 javascript 的缺乏知识是一个锚点,因此我决定询问社区。不过,我很欣赏你的回答。<input...>

答: 暂无答案