nova-kit/nova-on-vapor

Nova on Vapor 集成库

v1.2.0 2024-03-07 11:40 UTC

This package is auto-updated.

Last update: 2024-09-14 11:01:26 UTC


README

Tests Latest Stable Version Total Downloads Latest Unstable Version License

此库旨在解决在使用 Laravel Nova on Laravel Vapor 时的一些限制,包括

  • 无法在 Artisan 的交互模式下使用,影响 nova:user 命令。
  • 通过 Minio 在本地使用 VaporFileVaporImage
  • ExportAsCsv 支持 Laravel Vapor

安装

通过 composer 安装,请在终端运行以下命令

composer require "nova-kit/nova-on-vapor"

用法

新的 nova:vapor-user 命令

该命令将交互模式问题转换为 artisan 命令选项,因此您可以使用 --email--name 以及可选的 --password,例如

php artisan nova:vapor-user --name="Administrator" --email="nova@laravel.com"

注意:如果不传递 --password,则代码将生成一个随机的 8 位密码,您可以使用忘记密码功能来重置该值。

警告:使用 --password 是可能的,但请注意该值将被记录到 CloudWatch。

本地用于 VaporFileVaporImage 的 Minio

您可以在本地设置 Minio 并将其用作本地 S3 的替代品。首先,您需要通过运行以下命令安装 league/flysystem-aws-s3-v3

composer require "league/flysystem-aws-s3-v3"

接下来,您需要启用并配置 Minio

NOVA_ON_VAPOR_ENABLES_MINIO=(true)

MINIO_USERNAME=
MINIO_PASSWORD=
MINIO_ENDPOINT=

AWS_ACCESS_KEY_ID="${MINIO_USERNAME}"
AWS_SECRET_ACCESS_KEY="${MINIO_PASSWORD}"
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=local
AWS_ENDPOINT="${MINIO_ENDPOINT}"
AWS_USE_PATH_STYLE_ENDPOINT=(true)

CSV 导出

您可以将 Laravel\Nova\Actions\ExportAsCsv 替换为 NovaKit\NovaOnVapor\Actions\VaporExportAsCsv

use Laravel\Nova\Actions\ExportAsCsv;
use NovaKit\NovaOnVapor\Actions\VaporExportAsCsv;

/**
 * Get the actions available for the resource.
 *
 * @param  \Laravel\Nova\Http\Requests\NovaRequest  $request
 * @return array
 */
public function actions(NovaRequest $request)
{
    return [
        VaporExportAsCsv::make(),
    ];
}

如果您想更改存储磁盘以存储可供下载的 CSV 文件,您可以在注册操作时调用 withStorageDisk() 方法

return [
    VaporExportAsCsv::make()->withStorageDisk('s3'),
];

downloadViaTemporaryUrl 混合

Laravel Vapor 的响应限制为 6MB,在您需要下载大文件时这可能会导致问题。您可以通过利用 Storage::temporaryUrl() 来下载文件来避免此问题。

VaporFile::make('Filename')->downloadViaTemporaryUrl(),