diff options
-rw-r--r-- | README.md | 5 | ||||
-rw-r--r-- | init.php | 21 |
2 files changed, 19 insertions, 7 deletions
@@ -20,7 +20,6 @@ The following options are required if you're directly providing access keys (i.e 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 -# Intentionally without the 'TTRSS_' prefix. -AWS_ACCESS_KEY_ID=xxx -AWS_SECRET_ACCESS_KEY=yyy +TTRSS_CACHE_S3_ACCESS_KEY=xxx +TTRSS_CACHE_S3_SECRET_KEY=yyy ``` @@ -13,6 +13,8 @@ class Cache_S3 extends Plugin implements Cache_Adapter { const CACHE_S3_ENDPOINT = "CACHE_S3_ENDPOINT"; const CACHE_S3_BUCKET = "CACHE_S3_BUCKET"; const CACHE_S3_REGION = "CACHE_S3_REGION"; + const CACHE_S3_ACCESS_KEY = "CACHE_S3_ACCESS_KEY"; + const CACHE_S3_SECRET_KEY = "CACHE_S3_SECRET_KEY"; public function remove(string $filename): bool { return unlink($this->get_full_path($filename)); @@ -29,14 +31,25 @@ class Cache_S3 extends Plugin implements Cache_Adapter { Config::add(self::CACHE_S3_ENDPOINT, "", Config::T_STRING); Config::add(self::CACHE_S3_BUCKET, "", Config::T_STRING); Config::add(self::CACHE_S3_REGION, "", Config::T_STRING); + 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, - ]); + ]; + + 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), + ]; + } + + /** @phpstan-ignore-next-line */ + $this->s3 = new Aws\S3\S3Client($s3_client_props); /** @phpstan-ignore-next-line */ $this->s3->registerStreamWrapper(); @@ -79,7 +92,7 @@ class Cache_S3 extends Plugin implements Cache_Adapter { } public function get_full_path(string $filename): string { - return 's3://' . Config::get(self::CACHE_S3_BUCKET) . '/' . ($this->dir ? $this->dir . '/' : '') . basename(clean($filename)); + return 's3://' . Config::get(self::CACHE_S3_BUCKET) . '/' . $this->dir . '/' . basename(clean($filename)); } public function get_mime_type(string $filename) { |