lukewaite/laravel-aws-cache-adapter

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

v1.1.1 2019-05-14 14:11 UTC

This package is auto-updated.

Last update: 2024-09-13 22:47:31 UTC


README

为AWS SDK提供一个遵循 Aws\CacheInterface\CacheInterface 的缓存,该缓存使用laravel Cache类。

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')
];