From 61c700577bfbbfe3c9c6768e45b677d74aceeb78 Mon Sep 17 00:00:00 2001 From: Serhii Ilin Date: Wed, 3 Jul 2024 14:17:17 +0300 Subject: [PATCH] feat(region for s3 storage): added configurable region of s3 storage. --- configs/development.ini | 3 +++ configs/production.ini | 3 +++ rhodecode/config/config_maker.py | 1 + rhodecode/lib/archive_cache/backends/objectstore_cache.py | 3 ++- rhodecode/tests/rhodecode.ini | 3 +++ 5 files changed, 12 insertions(+), 1 deletion(-) diff --git a/configs/development.ini b/configs/development.ini index 49ca314c..bf3a14d7 100644 --- a/configs/development.ini +++ b/configs/development.ini @@ -307,6 +307,9 @@ archive_cache.objectstore.key = key ; secret for s3 auth archive_cache.objectstore.secret = secret +;region for s3 storage +archive_cache.objectstore.region = eu-central-1 + ; number of sharded buckets to create to distribute archives across ; default is 8 shards archive_cache.objectstore.bucket_shards = 8 diff --git a/configs/production.ini b/configs/production.ini index 0b4540cf..bf325a15 100644 --- a/configs/production.ini +++ b/configs/production.ini @@ -275,6 +275,9 @@ archive_cache.objectstore.key = key ; secret for s3 auth archive_cache.objectstore.secret = secret +;region for s3 storage +archive_cache.objectstore.region = eu-central-1 + ; number of sharded buckets to create to distribute archives across ; default is 8 shards archive_cache.objectstore.bucket_shards = 8 diff --git a/rhodecode/config/config_maker.py b/rhodecode/config/config_maker.py index b53de92e..afd6916c 100644 --- a/rhodecode/config/config_maker.py +++ b/rhodecode/config/config_maker.py @@ -204,6 +204,7 @@ def sanitize_settings_and_apply_defaults(global_config, settings): settings_maker.make_setting('archive_cache.objectstore.url', jn(default_cache_dir, 'archive_cache'), default_when_empty=True,) settings_maker.make_setting('archive_cache.objectstore.key', '') settings_maker.make_setting('archive_cache.objectstore.secret', '') + settings_maker.make_setting('archive_cache.objectstore.region', 'eu-central-1') settings_maker.make_setting('archive_cache.objectstore.bucket', 'rhodecode-archive-cache', default_when_empty=True,) settings_maker.make_setting('archive_cache.objectstore.bucket_shards', 8, parser='int') diff --git a/rhodecode/lib/archive_cache/backends/objectstore_cache.py b/rhodecode/lib/archive_cache/backends/objectstore_cache.py index aee44e63..bd8bd6e8 100644 --- a/rhodecode/lib/archive_cache/backends/objectstore_cache.py +++ b/rhodecode/lib/archive_cache/backends/objectstore_cache.py @@ -142,10 +142,11 @@ class ObjectStoreCache(BaseCache): endpoint_url = settings.pop('archive_cache.objectstore.url') key = settings.pop('archive_cache.objectstore.key') secret = settings.pop('archive_cache.objectstore.secret') + region = settings.pop('archive_cache.objectstore.region') log.debug('Initializing %s archival cache instance', self) - fs = fsspec.filesystem('s3', anon=False, endpoint_url=endpoint_url, key=key, secret=secret) + fs = fsspec.filesystem('s3', anon=False, endpoint_url=endpoint_url, key=key, secret=secret, region=region) # init main bucket if not fs.exists(self._bucket): diff --git a/rhodecode/tests/rhodecode.ini b/rhodecode/tests/rhodecode.ini index 1e64be75..1b534b63 100644 --- a/rhodecode/tests/rhodecode.ini +++ b/rhodecode/tests/rhodecode.ini @@ -275,6 +275,9 @@ archive_cache.objectstore.key = key ; secret for s3 auth archive_cache.objectstore.secret = secret +;region for s3 storage +archive_cache.objectstore.region = eu-central-1 + ; number of sharded buckets to create to distribute archives across ; default is 8 shards archive_cache.objectstore.bucket_shards = 8