Configure S3 Storage - CentOS 8

Hey All,

I’m trying to configure S3 compatible storage as a storage location for Seafile but it’s causing a number of issues.

CentOS 8
Seafile Pro 7.1.8 (Under 3 users)

Both Seafile and Seahub start with no errors in the console. However, upon logging in to Seafile’s web front end I get ‘Error’ on the libraries page. Attempting to create a new library also results in ‘Error’, nothing else. I am also no longer unable to login to the Admin portal to pull any logs as that menu option isn’t even there anymore.

The console is logging 500 errors but I’m not sure where to start checking.

Seafile Conf
[commit_object_backend]
name = s3
# bucket name can only use lowercase characters, numbers, periods and dashes. Period cannot be used in Frankfurt region.
bucket = seafile-commit-objects
key_id = x
key = x
host = x
path_style_request = true
memcached_options = --SERVER=localhost --POOL-MIN=10 --POOL-MAX=100

[fs_object_backend]
name = s3
# bucket name can only use lowercase characters, numbers, periods and dashes. Period cannot be used in Frankfurt region.
bucket = seafile-fs-objects
key_id = x
key = x
host = x
path_style_request = true
memcached_options = --SERVER=localhost --POOL-MIN=10 --POOL-MAX=100

[block_backend]
name = s3
# bucket name can only use lowercase characters, numbers, periods and dashes. Period cannot be used in Frankfurt region.
bucket = seafile-block-objects
key_id = x
key = x
host = x
path_style_request = true
memcached_options = --SERVER=localhost --POOL-MIN=10 --POOL-MAX=100

[storage] 
enable_storage_classes = true
storage_classes_file = /opt/seafile_storage_classes.json

Seafile Storage Classes
[
{
“storage_id”: “cold_storage”,
“name”: “Cold Storage”,
“is_default”: true,
“commits”: {
“backend”: “s3”,
“bucket”: “seafile-commit-objects”,
“key”: “x”,
“key_id”: x",
“host”: “x”,
“path_style_request”: “true”
},
“fs”: {
“backend”: “s3”,
“bucket”: “seafile-fs-objects”,
“key”: “x”,
“key_id”: “x”,
“host”: “x”,
“path_style_request”: “true”
},
“blocks”: {
“backend”: “s3”,
“bucket”: “seafile-block-objects”,
“key”: “x”,
“key_id”: “x”,
“host”: “x”,
“path_style_request”: “true”
}
},

{
“storage_id”: “hot_storage”,
“name”: “Hot Storage”,
“is_default”: false,
“fs”: {“backend”: “fs”, “dir”: “/storage/seafile/seafile-data”},
“commits”: {“backend”: “fs”, “dir”: “/storage/seafile/seafile-data”},
“blocks”: {“backend”: “fs”, “dir”: “/storage/seafile/seaflle-data”}
},
]

Seahub Settings

ENABLE_STORAGE_CLASSES = True
STORAGE_CLASS_MAPPING_POLICY = 'ROLE_BASED'

ENABLED_ROLE_PERMISSIONS = {
    'default': {
        'can_add_repo': True,
        'can_add_group': True,
        'can_view_org': True,
        'can_use_global_address_book': True,
        'can_generate_share_link': True,
        'can_generate_upload_link': True,
        'can_invite_guest': True,
        'can_connect_with_android_clients': True,
        'can_connect_with_ios_clients': True,
        'can_connect_with_desktop_clients': True,
        'storage_ids': ['hot_storage', 'cold_storage'],
    },
    'guest': {
        'can_add_repo': True,
        'can_add_group': False,
        'can_view_org': False,
        'can_use_global_address_book': False,
        'can_generate_share_link': False,
        'can_generate_upload_link': False,
        'can_invite_guest': False,
        'can_connect_with_android_clients': False,
        'can_connect_with_ios_clients': False,
        'can_connect_with_desktop_clients': False,
        'storage_ids': ['hot_storage', 'cold_storage'],
    },
}