155 lines
7.9 KiB
HTML
155 lines
7.9 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>S3 Status - HKFC Men's C Team</title>
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
</head>
|
|
<body>
|
|
<div class="container mt-4">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<h1>S3 Storage Status</h1>
|
|
<p class="lead">Current S3 configuration and connection status</p>
|
|
|
|
<div class="mb-3">
|
|
<a href="/admin/s3-config" class="btn btn-primary">Configure S3</a>
|
|
<a href="/admin" class="btn btn-secondary">Back to Admin</a>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h5>Configuration Status</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<table class="table table-borderless">
|
|
<tr>
|
|
<td><strong>S3 Storage:</strong></td>
|
|
<td>
|
|
<span class="badge bg-{{ 'success' if s3_info.enabled else 'secondary' }}">
|
|
{{ 'Enabled' if s3_info.enabled else 'Disabled' }}
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Provider:</strong></td>
|
|
<td>{{ s3_info.storage_provider.title() if s3_info.get('storage_provider') else 'AWS S3' }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Bucket Name:</strong></td>
|
|
<td>{{ s3_info.bucket_name }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Region:</strong></td>
|
|
<td>{{ s3_info.aws_region }}</td>
|
|
</tr>
|
|
{% if s3_info.get('storage_provider') == 'minio' %}
|
|
<tr>
|
|
<td><strong>MinIO Endpoint:</strong></td>
|
|
<td>{{ s3_info.get('minio_endpoint', 'Not configured') }}</td>
|
|
</tr>
|
|
{% endif %}
|
|
</table>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<table class="table table-borderless">
|
|
<tr>
|
|
<td><strong>Signed URLs:</strong></td>
|
|
<td>
|
|
<span class="badge bg-{{ 'success' if s3_info.use_signed_urls else 'secondary' }}">
|
|
{{ 'Enabled' if s3_info.use_signed_urls else 'Disabled' }}
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Fallback:</strong></td>
|
|
<td>
|
|
<span class="badge bg-{{ 'success' if s3_info.fallback_enabled else 'warning' }}">
|
|
{{ 'Enabled' if s3_info.fallback_enabled else 'Disabled' }}
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card mt-4">
|
|
<div class="card-header">
|
|
<h5>Connection Status</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="alert alert-{{ 'success' if s3_info.connection_success else 'danger' }}" role="alert">
|
|
<h6 class="alert-heading">
|
|
{{ '✅ Connection Successful' if s3_info.connection_success else '❌ Connection Failed' }}
|
|
</h6>
|
|
<p class="mb-0">{{ s3_info.connection_status }}</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{% if s3_info.enabled and s3_info.connection_success %}
|
|
<div class="card mt-4">
|
|
<div class="card-header">
|
|
<h5>Asset Management</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<p>S3 storage is properly configured and connected. Assets will be served from S3.</p>
|
|
<div class="alert alert-info">
|
|
<h6>Asset Locations</h6>
|
|
<ul class="mb-0">
|
|
<li><strong>Club Logos:</strong> <code>{{ s3_info.bucket_name }}/assets/images/clubs/</code></li>
|
|
<li><strong>General Images:</strong> <code>{{ s3_info.bucket_name }}/assets/images/</code></li>
|
|
<li><strong>Player Images:</strong> <code>{{ s3_info.bucket_name }}/assets/images/players/</code></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% elif s3_info.enabled and not s3_info.connection_success %}
|
|
<div class="card mt-4">
|
|
<div class="card-header">
|
|
<h5>Troubleshooting</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="alert alert-warning">
|
|
<h6>S3 is enabled but connection failed</h6>
|
|
<p>Check the following:</p>
|
|
<ul>
|
|
<li>Verify AWS credentials are correct</li>
|
|
<li>Ensure the bucket name exists</li>
|
|
<li>Check bucket permissions</li>
|
|
<li>Verify AWS region is correct</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% else %}
|
|
<div class="card mt-4">
|
|
<div class="card-header">
|
|
<h5>Static File Storage</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<p>S3 storage is disabled. Assets are being served from local static files.</p>
|
|
<div class="alert alert-info">
|
|
<h6>Local Asset Locations</h6>
|
|
<ul class="mb-0">
|
|
<li><strong>Club Logos:</strong> <code>/static/images/clubs/</code></li>
|
|
<li><strong>General Images:</strong> <code>/static/images/</code></li>
|
|
<li><strong>Player Images:</strong> <code>/static/images/players/</code></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
|
|
</body>
|
|
</html>
|