hcancelik / sidecar-browsershot

此包已被废弃且不再维护。未建议替代包。

一个 Sidecar 功能,用于在 Lambda 上运行 Browsershot。

v1.0.4 2022-05-20 15:14 UTC

This package is auto-updated.

Last update: 2023-02-20 16:57:54 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

此包允许您通过 SidecarAWS Lambda 上运行 Browsershot

您不需要在服务器上安装 Node、Puppeteer 或 Google Chrome。无头 Google Chrome 实例的启动工作是在 AWS Lambda 上完成的。

要求

此包要求在您的 Laravel 应用程序中已安装 spatie/browsershothammerstone/sidecar

遵循它们的安装和配置说明。(尽管如此,您也可以跳过 Browsershot 的 Puppeteer 和 Google Chrome 的安装。)

安装

您可以通过 composer 安装此包。

composer require hcancelik/sidecar-browsershot

在您的 sidecar.php 配置文件中注册 BrowsershotFunction::class

/*
 * All of your function classes that you'd like to deploy go here.
 */
'functions' => [
    \Hcancelik\SidecarBrowsershot\Functions\BrowsershotFunction::class,
],

通过运行以下命令部署 Lambda 函数:

php artisan sidecar:deploy --activate

有关详细信息,请参阅 Sidecar 文档

用法

您可以使用 BrowsershotLambda 如同来自 Spatie 包的默认 Browsershot-class。您需要做的就是将 Browsershot 替换为 BrowsershotLambda

use Hcancelik\SidecarBrowsershot\BrowsershotLambda;

// an image will be saved
BrowsershotLambda::url('https://example.com')->save($pathToImage);

// a pdf will be saved
BrowsershotLambda::url('https://example.com')->save('example.pdf');

// save your own HTML to a PDF
BrowsershotLambda::html('<h1>Hello world!!</h1>')->save('example.pdf');

// Get HTML of a URL and store it on a given disk
$html = BrowsershotLambda::url('https://example.com')->bodyHtml();
Storage::disk('s3')->put('example.html', $html);

直接保存到 S3

您可以直接在 AWS S3 上存储您的文件。

  • 您必须将 s3_buckets3_region 键添加到 config/sidecar.php
  • 您必须给予 sidecar-execution-role 对 S3 的写入权限

完成以上设置后,您可以在 BrowsershotLambda 上使用 saveToS3 方法。

use Hcancelik\SidecarBrowsershot\BrowsershotLambda;
// an image will be saved on S3
BrowsershotLambda::url('https://example.com')->saveToS3('example.jpg');
// a pdf will be saved on S3
BrowsershotLambda::url('https://example.com')->saveToS3('example.pdf');
// save your own html to a PDF on S3
BrowsershotLambda::html('<h1>Hello world!!</h1>')->saveToS3('example.pdf');

测试

测试套件会连接到 AWS 并运行已部署的 Lambda 函数。为了运行测试套件,您需要一个活动的 AWS 账户

我们可以使用本地的 sidecar:configure artisan 命令为 Sidecar 创建必要的 AWS 凭据。首先将 testbench.example.yaml 文件复制到 testbench.yaml。然后运行 ./vendor/bin/testbench sidecar:configure 以启动 Sidecar 设置过程。(您只需设置一次)

cp testbench.example.yaml testbench.yaml
cp .env.example .env
./vendor/bin/testbench sidecar:configure

完成 Sidecar 设置过程后,您将收到一些 SIDECAR_* 环境变量。将这些凭据添加到 .env

现在我们可以将本地的 BrowsershotFunction 部署到 AWS Lambda。在执行测试套件之前,在终端中运行以下命令:

./vendor/bin/testbench sidecar-browsershot:setup

部署成功后,您可以运行测试套件。

composer test

变更日志

请参阅CHANGELOG以获取更多关于最近更改的信息。

贡献

请参阅CONTRIBUTING以获取详细信息。

安全漏洞

请审查我们的安全策略了解如何报告安全漏洞。

致谢

许可

MIT 许可证 (MIT)。请参阅许可文件以获取更多信息。