diff --git a/src/main/java/org/codelibs/fess/app/web/admin/storage/AdminStorageAction.java b/src/main/java/org/codelibs/fess/app/web/admin/storage/AdminStorageAction.java
index 8321b0640a907ab7504eba9ef3462bb703c16bb6..22a1441b713ac625dcd79f5f18115dda16475961 100644
--- a/src/main/java/org/codelibs/fess/app/web/admin/storage/AdminStorageAction.java
+++ b/src/main/java/org/codelibs/fess/app/web/admin/storage/AdminStorageAction.java
@@ -176,7 +176,9 @@ public class AdminStorageAction extends FessAdminAction {
                 }
             }
         } catch (final Exception e) {
-            throw new StorageException("Failed to access " + fessConfig.getStorageEndpoint(), e);
+            if (logger.isDebugEnabled()) {
+                logger.debug("Failed to access " + fessConfig.getStorageEndpoint(), e);
+            }
         }
         return list;
     }
diff --git a/src/main/java/org/codelibs/fess/mylasta/action/FessLabels.java b/src/main/java/org/codelibs/fess/mylasta/action/FessLabels.java
index 99fb5e965bf75d790eafa95d0b2cac495716c550..7682272b907f695d6b48cbd43e879eddb73d008f 100644
--- a/src/main/java/org/codelibs/fess/mylasta/action/FessLabels.java
+++ b/src/main/java/org/codelibs/fess/mylasta/action/FessLabels.java
@@ -3126,6 +3126,12 @@ public class FessLabels extends UserMessages {
     /** The key of the message: Upload */
     public static final String LABELS_storage_button_upload = "{labels.storage_button_upload}";
 
+    /** The key of the message: Bucket Name */
+    public static final String LABELS_storage_bucket_name = "{labels.storage_bucket_name}";
+
+    /** The key of the message: File */
+    public static final String LABELS_storage_file = "{labels.storage_file}";
+
     /**
      * Assert the property is not null.
      * @param property The value of the property. (NotNull)
diff --git a/src/main/resources/fess_label.properties b/src/main/resources/fess_label.properties
index 8fef26a0fe95c6c3503dcc9fb08734664f8e01fc..aaf99b2346359600a797d508f568f180e0e57a84 100644
--- a/src/main/resources/fess_label.properties
+++ b/src/main/resources/fess_label.properties
@@ -1033,3 +1033,5 @@ labels.storage_size=Size
 labels.storage_last_modified=Last Modified
 labels.storage_upload_file=Upload File
 labels.storage_button_upload=Upload
+labels.storage_bucket_name=Bucket Name
+labels.storage_file=File
diff --git a/src/main/resources/fess_label_en.properties b/src/main/resources/fess_label_en.properties
index b99f41e5cdf4ca026ab507b6c346aeb5186ea01a..aaf99b2346359600a797d508f568f180e0e57a84 100644
--- a/src/main/resources/fess_label_en.properties
+++ b/src/main/resources/fess_label_en.properties
@@ -193,6 +193,7 @@ labels.menu_maintenance=Maintenance
 labels.menu_related_content=Related Content
 labels.menu_related_query=Related Query
 labels.menu_plugin=Plugin
+labels.menu_storage=Storage
 labels.sidebar.placeholder_search=Search...
 labels.sidebar.menu=MENU
 labels.footer.copyright=&copy;2019 <a href="https://github.com/codelibs">CodeLibs Project</a>.
@@ -839,6 +840,7 @@ labels.general_menu_logging=Logging
 labels.general_menu_suggest=Suggest
 labels.general_menu_ldap=LDAP
 labels.general_menu_notification=Notification
+labels.general_storage=Storage
 labels.ldap_provider_url=LDAP URL
 labels.ldap_security_principal=User DN
 labels.ldap_admin_security_principal=Bind DN
@@ -849,6 +851,10 @@ labels.ldap_group_filter=Group Filter
 labels.ldap_memberof_attribute=memberOf Attribute
 labels.notification_login=Login page
 labels.notification_search_top=Search top page
+labels.storage_endpoint=Endpoint
+labels.storage_access_key=Access Key
+labels.storage_secret_key=Secret Key
+labels.storage_bucket=Bucket
 labels.send_testmail=Send TestMail
 labels.backup_configuration=Back Up
 labels.backup_name=Name
@@ -1021,3 +1027,11 @@ labels.plugin_jar_file=Jar File
 labels.plugin_local_install=Local
 labels.plugin_remote_install=Remote
 labels.crud_button_install=Install
+labels.storage_configuration=Storage
+labels.storage_name=Name
+labels.storage_size=Size
+labels.storage_last_modified=Last Modified
+labels.storage_upload_file=Upload File
+labels.storage_button_upload=Upload
+labels.storage_bucket_name=Bucket Name
+labels.storage_file=File
diff --git a/src/main/resources/fess_label_ja.properties b/src/main/resources/fess_label_ja.properties
index 3843b5ced2675aab53a24d56b5767f8e21054b90..1c4846bbcc69473a3525a36e2e878bbd6a24db93 100644
--- a/src/main/resources/fess_label_ja.properties
+++ b/src/main/resources/fess_label_ja.properties
@@ -186,6 +186,7 @@ labels.menu_related_content=関連コンテンツ
 labels.menu_related_query=関連クエリー
 labels.sidebar.placeholder_search=検索...
 labels.menu_plugin=プラグイン
+labels.menu_storage=ストレージ
 labels.sidebar.menu=メニュー
 labels.footer.copyright=&copy;2019 <a href="https://github.com/codelibs">CodeLibs Project</a>.
 labels.search=検索
@@ -831,6 +832,7 @@ labels.general_menu_logging=ロギング
 labels.general_menu_suggest=サジェスト
 labels.general_menu_ldap=LDAP
 labels.general_menu_notification=お知らせ表示
+labels.general_storage=ストレージ
 labels.ldapProviderUrl=LDAP URL
 labels.ldapSecurityPrincipal=User DN
 labels.ldapAdminSecurityPrincipal=Bind DN
@@ -849,6 +851,10 @@ labels.ldap_group_filter=グループフィルタ
 labels.ldap_memberof_attribute=memberOf属性
 labels.notification_login=ログインページ
 labels.notification_search_top=検索トップページ
+labels.storage_endpoint=エンドポイント
+labels.storage_access_key=アクセスキー
+labels.storage_secret_key=シークレットキー
+labels.storage_bucket=バケット
 labels.send_testmail=テストメールの送信
 labels.backup_configuration=バックアップ
 labels.backup_name=名前
@@ -1021,3 +1027,11 @@ labels.plugin_jar_file=Jarファイル
 labels.plugin_local_install=ローカル
 labels.plugin_remote_install=リモート
 labels.crud_button_install=インストール
+labels.storage_configuration=ストレージ
+labels.storage_name=名前
+labels.storage_size=サイズ
+labels.storage_last_modified=最終更新日時
+labels.storage_upload_file=ファイルのアップロード
+labels.storage_button_upload=アップロード
+labels.storage_bucket_name=バケット名
+labels.storage_file=ファイル
diff --git a/src/main/resources/fess_message_en.properties b/src/main/resources/fess_message_en.properties
index 27f23aeb7f0015f305a21a474dbbf9efcc30cfff..828477e35f21acdfb0a1b01db31071afcfcf5c57 100644
--- a/src/main/resources/fess_message_en.properties
+++ b/src/main/resources/fess_message_en.properties
@@ -156,6 +156,13 @@ errors.property_type_float={0} should be numeric.
 errors.property_type_double={0} should be numeric.
 errors.property_type_date={0} should be date.
 
+errors.storage_file_upload_failure=Failed to upload {0}.
+errors.storage_file_not_found=The target file is not found in Storage.
+errors.storage_file_download_failure=Failed to download {0}.
+errors.storage_access_error=Storage access error: {0}
+errors.storage_no_upload_file=Upload file is required.
+errors.storage_directory_name_is_invalid=Directory name is invalid.
+
 success.update_crawler_params=Updated parameters.
 success.delete_doc_from_index=Started a process to delete the document from index.
 success.crawling_info_delete_all=Deleted session data.
@@ -184,6 +191,7 @@ success.bulk_process_started=Bulk process is started.
 success.print_thread_dump=Printed thread dump to log file.
 success.install_plugin=Installing {0} plugin.
 success.delete_plugin=Deleting {0} plugin.
+success.upload_file_to_storage=Uploaded {0}
 
 success.crud_create_crud_table=Created data.
 success.crud_update_crud_table=Updated data.
diff --git a/src/main/resources/fess_message_ja.properties b/src/main/resources/fess_message_ja.properties
index 72207e3c7d5de8e6baf1d65c5d10b3f2c8fc1a0b..826ed518b4df77300f20dd1f88e0d1f096ed287a 100644
--- a/src/main/resources/fess_message_ja.properties
+++ b/src/main/resources/fess_message_ja.properties
@@ -149,6 +149,13 @@ errors.property_type_float={0}は数値です。
 errors.property_type_double={0}は数値です。
 errors.property_type_date={0}は日付です。
 
+errors.storage_file_upload_failure={0} のアップロードに失敗しました。
+errors.storage_file_not_found=対象のファイルはストレージ内にありません。
+errors.storage_file_download_failure={0} のダウンロードに失敗しました。
+errors.storage_access_error=ストレージアクセスエラー: {0}
+errors.storage_no_upload_file=アップロードするファイルを指定してください。
+errors.storage_directory_name_is_invalid=ディレクトリ名が正しくありません。
+
 success.update_crawler_params = パラメータを更新しました。
 success.delete_doc_from_index = インデックスから文書を削除するプロセスを開始しました。
 success.crawling_info_delete_all = セッションデータを削除しました。
@@ -177,6 +184,7 @@ success.bulk_process_started=バルク処理を開始しました。
 success.print_thread_dump=スレッドダンプをログファイルに出力しました。
 success.install_plugin=プラグイン {0} をインストールしています。
 success.delete_plugin=プラグイン {0} を削除しています。
+success.upload_file_to_storage={0} をアップロードしました。
 
 success.crud_create_crud_table = データを作成しました。
 success.crud_update_crud_table = データを更新しました。
diff --git a/src/main/webapp/WEB-INF/view/admin/storage/admin_storage.jsp b/src/main/webapp/WEB-INF/view/admin/storage/admin_storage.jsp
index 8270a7228ce3a9f73d2caec62d41447e1ce04745..fb4be739d7e2af5f7c9253f0047b826895debf84 100644
--- a/src/main/webapp/WEB-INF/view/admin/storage/admin_storage.jsp
+++ b/src/main/webapp/WEB-INF/view/admin/storage/admin_storage.jsp
@@ -26,8 +26,16 @@
 						<div class="box box-primary">
 							<div class="box-header with-border">
 								<h3 class="box-title">
-									<la:message key="labels.storage_configuration" />
+									<a aria-hidden="true" href="${contextPath}/admin/storage/"><i class="fas fa-database" aria-hidden="true"></i>${f:h(bucket)}</a>
+									<c:forEach var="item" varStatus="s" items="${pathItems}">
+										/ <span><a href="${contextPath}/admin/storage/list/${f:u(item.id)}/">${f:h(item.name)}</a></span>
+									</c:forEach>
+									/ <a data-toggle="modal" data-target="#createDir"> <i class="fas fa-folder" aria-hidden="true"></i></a>
 								</h3>
+								<span class="pull-right"> <a data-toggle="modal" data-target="#uploadeFile"><i class="fa fa-upload"
+										aria-hidden="true"
+									></i></a>
+								</span>
 							</div>
 							<!-- /.box-header -->
 							<div class="box-body">
@@ -40,97 +48,68 @@
 								</div>
 								<%-- List --%>
 								<div class="data-wrapper">
-									<div class="row">
-										<div class="col-sm-12">
-											<a  class="fa fa-home" aria-hidden="true" href="${contextPath}/admin/storage/">(Bucket: ${f:h(endpoint)}/${f:h(bucket)})</a>
-											<c:forEach var="item" varStatus="s" items="${pathItems}">
-												<i class="fa fa-chevron-right" aria-hidden="true"></i>
-												<span><a href="${contextPath}/admin/storage/list/${f:u(item.id)}/">${f:h(item.name)}</a></span>
-											</c:forEach>
-											<i class="fa fa-chevron-right" aria-hidden="true"></i>
-
-											<div type="button" class="btn btn-success btn-xs" name="createDir" data-toggle="modal"
-													data-target="#createDir">
-												<i class="fa fa-plus" aria-hidden="true"></i>
-											</div>
-
-											<div class="modal modal-primary" id="createDir"
-												 tabindex="-1" role="dialog"
-											>
-												<div class="modal-dialog">
-													<div class="modal-content">
-														<div class="modal-header">
-															<button type="button" class="close" data-dismiss="modal" aria-label="Close">
-																<span aria-hidden="true">×</span>
-															</button>
-															<h4 class="modal-title">
-																<la:message key="labels.crud_title_create" />
-															</h4>
-														</div>
-														<div class="modal-body col-sm-12">
-															<la:form action="/admin/storage/createDir/" enctype="multipart/form-data" styleClass="form-inline">
-																<div class="form-group">
-																	<input type="text" name="name" class="form-control" />
-																</div>
-																<input type="hidden" name="path" value="${path}" />
-																<button type="submit" class="btn btn-success" name="createDir">
-																	<em class="fa fa-make"></em>
-																	<la:message key="labels.crud_button_create" />
-																</button>
-															</la:form>
-														</div>
-														<div class="modal-footer">
-															<button type="button" class="btn btn-outline pull-left" data-dismiss="modal">
-																<la:message key="labels.crud_button_cancel" />
-															</button>
+									<div class="modal modal-primary" id="createDir" tabindex="-1" role="dialog">
+										<div class="modal-dialog">
+											<div class="modal-content">
+												<la:form action="/admin/storage/createDir/" enctype="multipart/form-data" styleClass="form-inline">
+													<input type="hidden" name="path" value="${path}" />
+													<div class="modal-header">
+														<button type="button" class="close" data-dismiss="modal" aria-label="Close">
+															<span aria-hidden="true">&times;</span>
+														</button>
+														<h4 class="modal-title">
+															<la:message key="labels.crud_title_create" />
+														</h4>
+													</div>
+													<div class="modal-body">
+														<div class="form-group">
+															<label for="name" class="control-label"><la:message key="labels.storage_bucket_name" /></label>
+															<input type="text" name="name" class="form-control"/>
 														</div>
 													</div>
-												</div>
+													<div class="modal-footer">
+														<button type="button" class="btn btn-outline pull-left" data-dismiss="modal">
+															<la:message key="labels.crud_button_cancel" />
+														</button>
+														<button type="submit" class="btn btn-success" name="createDir">
+															<em class="fa fa-make"></em>
+															<la:message key="labels.crud_button_create" />
+														</button>
+													</div>
+												</la:form>
 											</div>
 										</div>
 									</div>
 
-									<div class="row">
-										<div class="col-sm-12">
-											<div type="button" class="btn btn-success pull-right" name="upload" data-toggle="modal"
-													data-target="#uploadeFile"
-													value="<la:message key="labels.storage_button_upload" />"
-											>
-												<em class="fa fa-upload"></em>
-												<la:message key="labels.storage_button_upload" />
-											</div>
-											<div class="modal modal-primary" id="uploadeFile"
-												 tabindex="-1" role="dialog"
-											>
-												<div class="modal-dialog">
-													<div class="modal-content">
-														<div class="modal-header">
-															<button type="button" class="close" data-dismiss="modal" aria-label="Close">
-																<span aria-hidden="true">×</span>
-															</button>
-															<h4 class="modal-title">
-																<la:message key="labels.storage_upload_file" />
-															</h4>
-														</div>
-														<div class="modal-body col-sm-12">
-															<la:form action="/admin/storage/upload/" enctype="multipart/form-data" styleClass="form-inline">
-																<div class="form-group">
-																	<input type="file" name="uploadFile" class="form-control" />
-																</div>
-																<input type="hidden" name="path" value="${path}" />
-																<button type="submit" class="btn btn-success" name="upload">
-																	<em class="fa fa-upload"></em>
-																	<la:message key="labels.storage_button_upload" />
-																</button>
-															</la:form>
-														</div>
-														<div class="modal-footer">
-															<button type="button" class="btn btn-outline pull-left" data-dismiss="modal">
-																<la:message key="labels.crud_button_cancel" />
-															</button>
+									<div class="modal modal-primary" id="uploadeFile" tabindex="-1" role="dialog">
+										<div class="modal-dialog">
+											<div class="modal-content">
+												<la:form action="/admin/storage/upload/" enctype="multipart/form-data" styleClass="form-inline">
+													<input type="hidden" name="path" value="${path}" />
+													<div class="modal-header">
+														<button type="button" class="close" data-dismiss="modal" aria-label="Close">
+															<span aria-hidden="true">&times;</span>
+														</button>
+														<h4 class="modal-title">
+															<la:message key="labels.storage_upload_file" />
+														</h4>
+													</div>
+													<div class="modal-body">
+														<div class="form-group">
+															<label for="uploadFile" class="control-label"><la:message key="labels.storage_file" /></label>
+															<input type="file" name="uploadFile" class="form-control" />
 														</div>
 													</div>
-												</div>
+													<div class="modal-footer">
+														<button type="button" class="btn btn-outline pull-left" data-dismiss="modal">
+															<la:message key="labels.crud_button_cancel" />
+														</button>
+														<button type="submit" class="btn btn-success" name="upload">
+															<em class="fa fa-upload"></em>
+															<la:message key="labels.storage_button_upload" />
+														</button>
+													</div>
+												</la:form>
 											</div>
 										</div>
 									</div>
@@ -141,8 +120,9 @@
 												<tbody>
 													<tr>
 														<th><la:message key="labels.storage_name" /></th>
-														<th><la:message key="labels.storage_size" /></th>
-														<th><la:message key="labels.storage_last_modified" /></th>
+														<th class="col-md-1"><la:message key="labels.storage_size" /></th>
+														<th class="col-md-3"><la:message key="labels.storage_last_modified" /></th>
+														<th class="col-md-2"></th>
 													</tr>
 													<c:if test="${not empty path and not empty parentId}">
 													<tr
@@ -163,7 +143,7 @@
 														<c:if test="${not data.directory}">
 														<tr>
 															<td>
-																<em class="fa fa-file"></em>
+																<em class="far fa-file"></em>
 																	${f:h(data.name)}
 															</td>
 															<td>${f:h(data.size)}</td>
@@ -173,7 +153,7 @@
 														<tr
 															data-href="${contextPath}/admin/storage/list/${f:u(data.id)}/">
 															<td>
-																<em class="fa fa-folder-open"></em>
+																<em class="fa fa-folder-open" style="color:#F7C502;"></em>
 																	${f:h(data.name)}
 															</td>
 															<td></td>