diff --git a/README.md b/README.md index 88d61e74..928da2b3 100644 --- a/README.md +++ b/README.md @@ -334,7 +334,7 @@ Use the AWS plugin for the objectfs addon. - **Secret**: Min.io Secret - **Bucket**: S3 Bucket name - **AWS region**: Doesn't matter -- **Base URL***: Your ip address of Min.io server or url. (If it's internal, see issue page [here](https://github.com/catalyst/moodle-tool_objectfs/issues/579). +- **Base URL***: Your ip address of Min.io server or url. (If it's internal, see issue page [here](https://github.com/catalyst/moodle-tool_objectfs/issues/579)). - **Key Prefix**: useful for adding a prefix for all data stored in bucket. Can be used to reuse the same CloudFront distribution for both Moodle itself and the pre-signed URLs files. ### Azure Blob Storage settings diff --git a/classes/local/store/s3/client.php b/classes/local/store/s3/client.php index ac097031..0537d83f 100644 --- a/classes/local/store/s3/client.php +++ b/classes/local/store/s3/client.php @@ -182,6 +182,10 @@ public function set_client($config) { if ($config->s3_base_url) { $options['endpoint'] = $config->s3_base_url; } + + if (!empty($config->s3_path_style_endpoint)) { + $options['use_path_style_endpoint'] = false; + } $this->client = \Aws\S3\S3Client::factory($options); } @@ -511,7 +515,14 @@ public function define_client_section($settings, $config) { new \lang_string('settings:aws:base_url_help', 'tool_objectfs'), '' )); - + + $settings->add(new \admin_setting_configcheckbox( + 'tool_objectfs/s3_path_style_endpoint', + new \lang_string('settings:aws:path_style_endpoint', 'tool_objectfs'), + new \lang_string('settings:aws:path_style_endpoint_help', 'tool_objectfs'), + 0 + )); + $settings->add(new \admin_setting_configtext( 'tool_objectfs/key_prefix', new \lang_string('settings:aws:key_prefix', 'tool_objectfs'), diff --git a/lang/en/tool_objectfs.php b/lang/en/tool_objectfs.php index 6ee7edbb..6c59bb7f 100644 --- a/lang/en/tool_objectfs.php +++ b/lang/en/tool_objectfs.php @@ -135,6 +135,8 @@ $string['settings:aws:key_help'] = 'Amazon S3 key credential.'; $string['settings:aws:key_prefix'] = 'Prefix to use in bucket'; $string['settings:aws:key_prefix_help'] = 'Prefix to use inside Amazon S3 bucket. Must end with trailing slash when set. Leave blank to use root of bucket.'; +$string['settings:aws:path_style_endpoint'] = 'Path style endpoint'; +$string['settings:aws:path_style_endpoint_help'] = 'Use path style endpoints for S3 client.'; $string['settings:aws:region'] = 'region'; $string['settings:aws:region_help'] = 'Amazon S3 API gateway region.'; $string['settings:aws:sdkcredserror'] = 'Couldn\'t find AWS credentials. It\'s unsafe to enable this setting. Follow up AWS documentation.';