diff --git a/CHANGELOG.md b/CHANGELOG.md
index c498ac34cccc05c654c27c058a408a0d14161b7a..64ec5c9221a8df6ecfb6eb08fadfa58f2ff19969 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,6 +16,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
 - Support pagination of local emoji packs and files
 - Add MRF Activity Expiration setting
 - Add ability to disable multi-factor authentication for a user
+- Ability to configure S3 settings on Upload tab
 
 ### Changed
 
diff --git a/src/views/settings/components/Upload.vue b/src/views/settings/components/Upload.vue
index 019f9a5f5f71cbaa0593bf7e507d32df6bcc020f..124de2554da6af293fe7612d4d08652d6a21d6ef 100644
--- a/src/views/settings/components/Upload.vue
+++ b/src/views/settings/components/Upload.vue
@@ -8,6 +8,10 @@
       <setting :setting-group="uploadersLocal" :data="uploadersLocalData"/>
       <el-divider v-if="uploadersLocal" class="divider thick-line"/>
     </el-form>
+    <el-form v-if="showUploadersS3" :model="s3Data" :label-position="labelPosition" :label-width="labelWidth">
+      <setting :setting-group="s3" :data="s3Data"/>
+      <el-divider v-if="s3" class="divider thick-line"/>
+    </el-form>
     <el-form v-if="showUploadersS3" :model="uploadersS3Data" :label-position="labelPosition" :label-width="labelWidth">
       <setting :setting-group="uploadersS3" :data="uploadersS3Data"/>
       <el-divider v-if="uploadersS3" class="divider thick-line"/>
@@ -62,6 +66,12 @@ export default {
     loading() {
       return this.settings.loading
     },
+    s3() {
+      return this.settings.description.find(setting => setting.key === ':s3')
+    },
+    s3Data() {
+      return _.get(this.settings.settings, [':ex_aws', ':s3']) || {}
+    },
     showUploadersS3() {
       const uploader = _.get(this.settings.settings, [':pleroma', 'Pleroma.Upload', ':uploader'])
       return uploader === 'Pleroma.Uploaders.S3'