如何解决使用PuppeteerSharp从包含链接到Azure Blob存储的图像的网页生成PDF文件
我有一个网页,其中包含href标记,这些标记指向存储在Azure Blob存储中的图片。 Azure容器是私有容器,使用Azure SAS令牌执行访问每个图像的链接。href链接的格式类似于https://myblob.blob.core.windows.net/mycontainer/myfolder%2Fmyfile.jpeg?sv=2019-12-12&st=2020-10-13T18%3A52%3A48Z&se=2020-10-13T18%3A58%3A48Z&sr=b&sp=r&sig=P5JRdwKa4GkbIFF55sWywOe4vnPnWOCoSf29UHYmNPA%3D
当使用WaitUntilNavigation.Networkidle0使用Puppeteer sharp生成PDF时,我没有成功检索图像:
我还测试了每个生成的安全SAS链接,它们可以正常工作。我还用基本的64位数据编码图像替换了每个href链接,效果很好。
我使用基于Node.js(https://try-puppeteer.appspot.com/)的在线Puppeteer服务测试了PDF生成,它的工作原理很吸引人。因此,puppeteersharp版本(v2.0.4)似乎存在问题。
关于可能是什么问题的任何想法?
解决方法
经过数小时的努力后,我们终于找到了问题所在。它与Puppeteer无关,后者的工作方式像超级按钮,而是与私有Blob存储容器处理身份验证的方式有关:由于我们的请求包含带有自己应用所需的承载令牌的Authorization HTTP标头,因此该标头是由Chromium发送的, blob容器中的远程图像。 不幸的是,Azure服务试图处理该令牌并拒绝了我们的请求。
我们如何识别?通过将Chrome调试器连接到Chromium实例并检查日志。实际上,可以通过远程调试端口启动Puppeteer。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。