diff options
-rw-r--r-- | README.md | 8 | ||||
-rw-r--r-- | init.php | 17 |
2 files changed, 18 insertions, 7 deletions
@@ -1,6 +1,6 @@ # Cache S3 -File cache backend using S3 protocol (e.g. Minio) +File cache backend using S3 protocol (e.g. Minio, AWS S3). ## Installation @@ -14,6 +14,12 @@ The following options are required: TTRSS_CACHE_S3_ENDPOINT=http://example.com:9000 TTRSS_CACHE_S3_BUCKET=bucket-name TTRSS_CACHE_S3_REGION=us-east-1 +``` + +The following options are required if you're directly providing access keys (i.e. not using an IAM role or alternative approach). +See [Credentials for the AWS SDK for PHP Version 3](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html) for more information. + +```ini TTRSS_CACHE_S3_ACCESS_KEY=xxx TTRSS_CACHE_S3_SECRET_KEY=yyy ``` @@ -34,17 +34,22 @@ class Cache_S3 extends Plugin implements Cache_Adapter { Config::add(self::CACHE_S3_ACCESS_KEY, "", Config::T_STRING); Config::add(self::CACHE_S3_SECRET_KEY, "", Config::T_STRING); - /** @phpstan-ignore-next-line */ - $this->s3 = new Aws\S3\S3Client([ + $s3_client_props = [ 'version' => 'latest', 'region' => Config::get(self::CACHE_S3_REGION), 'endpoint' => Config::get(self::CACHE_S3_ENDPOINT), 'use_path_style_endpoint' => true, - 'credentials' => [ + ]; + + if (Config::get(self::CACHE_S3_ACCESS_KEY) && Config::get(self::CACHE_S3_SECRET_KEY)) { + $s3_client_props['credentials'] = [ 'key' => Config::get(self::CACHE_S3_ACCESS_KEY), - 'secret' => Config::get(self::CACHE_S3_SECRET_KEY) - ], - ]); + 'secret' => Config::get(self::CACHE_S3_SECRET_KEY), + ]; + } + + /** @phpstan-ignore-next-line */ + $this->s3 = new Aws\S3\S3Client($s3_client_props); /** @phpstan-ignore-next-line */ $this->s3->registerStreamWrapper(); |