kaihei777/laravel-aws-cache-adapter

Laravel AWS凭据缓存适配器。允许您减少对ec2元数据API的调用。

v2.0.0 2022-05-09 07:14 UTC

This package is auto-updated.

Last update: 2024-09-09 13:06:37 UTC


README

为AWS SDK提供符合Aws\CacheInterface\CacheInterface的缓存,它使用Laravel缓存类。

Latest Version on Packagist Software License Build Status Code Coverage

用途

当使用EC2实例IAM角色或ECS任务IAM角色时,AWS PHP SDK会自动对ec2元数据API(169.254.169.254)进行查找以获取凭据。默认情况下,这些凭据不缓存,如果元数据API响应慢或无响应,有时可能成为问题或导致速度减慢。

此包允许您配置某些Laravel文件系统,以便自动加载一个使用Laravel缓存存储来缓存返回的STS令牌的CacheInterface,从而减少对元数据API的请求。

使用方法

直接使用适配器

可以将LaravelCacheAdapter直接传递到您的config/filesystems.php中的Flysystem

    's3' => [
        'driver'      => 's3',
        'base-path'   => 'https://s3.amazonaws.com',
        'credentials' => new LaravelCacheAdapter(app('cache'))
        'bucket'      => env('AWS_BUCKET'),
        'region'      => env('AWS_REGION', 'us-east-1'),
    ],

通过ServiceProvider自动插入凭证提供者

默认配置设置在/config/laravel-aws-cache.php中。将此文件复制到您的配置目录以修改值。您可以使用以下命令发布此配置

$ php artisan vendor:publish --provider="LukeWaite\LaravelAwsCacheAdapter\ServiceProvider"

配置

return [
    /**
     * A comma separated list of filesystems defined in `config/filesystems.php` to which the
     * credential cache should be applied.
     */
    'filesystems' => env('LARAVEL_AWS_CACHE_FILESYSTEMS', null),

    /**
     * Whether or not to iterate through the `filesystems` defined and apply the credential cache.
     */
    'enable' => env('LARAVEL_AWS_CACHE_ENABLE', false),

    /**
     * The Laravel cache store defined in `config/cache.php` to use.
     */
    'cache' => env('LARAVEL_AWS_CACHE_CACHE', 'file')
];