**问题:**是否有一种好方法让puppeteer.js截图,然后,而不是为他们指定一个本地路径,将它们捆绑到一个用户可以下载的.zip文件中?这将作为一个部署的Web应用程序而不是命令行工具存在。代替直接的建议,我想也许有一些关于在哪里以及如何最好地搜索这个的提示,这样我就可以更好地自己研究它。
**额外的上下文:**我的目标是制作一个应用程序,我的设计师可以用它来捕获以前工作的屏幕截图。最佳状态是他们能够使用它,而不需要使用命令行做任何事情,所以我能想到的最佳方法是实时部署它(尽管我愿意接受其他建议,以防有我没有考虑过的选项)。 puppet 师屏幕截图的标准方法似乎是为图像指定一个本地路径,但我意识到这会产生安全和隐私问题(即使它只会在内部使用),所以我想知道是否有一个好的方法将屏幕截图捆绑到一个可下载的zip中,而不是让它们直接进入某人的本地文件系统。
1条答案
按热度按时间kt06eoxx1#
我能够让这个工作,唯一剩下的问题是部署应用程序时的超时503错误,但这是一个不同的问题,我认为应该忽略这个特定问题的意图(与puppeteer运行所有需要运行的动作所需的时间长度有关,导致heroku超时,但这仍然是一个本地设置中的工作应用程序)。
在高层次上,这里是使其工作的重要部分(将包括底部的代码):
服务器:
1.导入adm-zip。
1.使用adm-zip声明一个zip变量。
1.删除/确保屏幕截图代码块中没有path属性。
1.由于每个屏幕截图都是用puppeteer记录的,因此使用
.addFile()
方法将其添加到zip变量中。1.一旦所有屏幕截图都在zip文件中,将其转换为缓冲区对象并将该文件发送到客户端。
客户:
1.将zip buffer对象转换为新的blob,确保使用
Uint8Array()
将其转换为8位数组。1.创建一个新的url窗口对象,使用您刚刚创建的带有返回的zip数据的blob。
代码(完整):