Besonders für Webseiten mit zahlreichen Bildergalerien oder unzähligen Downloads wird der Speicherplatz schnell knapp. Eine Speichererweiterung beim 0815-Webhoster wird schnell ordentlich teuer. Eine Alternative könnte da Amazon AWS S3 sein.
Joomla, ein beliebtes Content-Management-System, lässt sich mit Amazon S3, einem Cloud-Speicherdienst, verbinden, um Dateien effizient zu speichern und zu verwalten. Mit preisen um die 0,0245 USD pro GB doch sehr attraktiv. Die Integration ermöglicht es, Medien und andere Dateien direkt auf einem S3 Bucket zu speichern und von dort aus zu verwenden. Nachfolgend finden Sie eine schrittweise Anleitung, wie Sie Joomla mit einem Amazon S3 Bucket verbinden können.
1. Voraussetzungen
Bevor Sie mit der Integration beginnen, stellen Sie sicher, dass Sie Folgendes zur Verfügung haben:
- Eine funktionierende Joomla-Installation.
- Einen Amazon S3 Bucket, der zuvor erstellt wurde.
- Amazon Web Services (AWS) Zugangsschlüssel (Access Key ID und Secret Access Key).
- Ein Plugin oder eine Erweiterung, die die Verbindung zwischen Joomla und S3 unterstützt.
2. S3 Bucket vorbereiten
- Melden Sie sich bei AWS an und navigieren Sie zu „S3“.
- Erstellen Sie einen neuen Bucket oder verwenden Sie einen bestehenden.
- Konfigurieren Sie die Berechtigungen für den Bucket. Stellen Sie sicher, dass Ihre Anwendung die entsprechenden Lese- und Schreibrechte hat.
- Notieren Sie sich den Namen des Buckets und die Region.
3. Zugangsschlüssel erstellen
Falls Sie noch keinen Zugangsschlüssel haben:
- Gehen Sie zur IAM-Konsole (Identity and Access Management) in AWS.
- Erstellen Sie eine neue IAM-Rolle oder einen Benutzer mit Berechtigungen für S3.
- Generieren Sie die Zugangsschlüssel (Access Key ID und Secret Access Key).
Bewahren Sie die Zugangsschlüssel sicher auf, da sie für die Verbindung erforderlich sind.
4. Joomla-Erweiterung installieren
Um die Verbindung herzustellen, benötigen Sie eine Joomla-Erweiterung, die S3 unterstützt. Einige gängige Optionen sind:
- Plugin für externe Speicheranbindung > Akeeba S3 Filesystem
Seit dem Release von plg_filesystem_s3-1.2.0.zip ist auch das Problem mit den abgelaufenen S3-Adressen geschichte. - CDN-Erweiterungen, die S3 als Backend unterstützen.
Installieren Sie die Erweiterung über den Joomla-Erweiterungsmanager.
5. Erweiterung konfigurieren
Nach der Installation der Erweiterung:
- Öffnen Sie das Konfigurationsmenü der Erweiterung in Joomla.
- Geben Sie die entsprechenden AWS-Zugangsschlüssel ein (Access Key ID und Secret Access Key).
- Fügen Sie den Namen des S3 Buckets und die Region hinzu.
- Konfigurieren Sie weitere Optionen wie die Standardordnerstruktur oder Caching-Einstellungen, falls erforderlich.
6. Testen der Verbindung
- Laden Sie eine Testdatei hoch, um sicherzustellen, dass sie erfolgreich im S3 Bucket gespeichert wird.
- Überprüfen Sie, ob die Datei korrekt angezeigt wird und von S3 aus abgerufen werden kann.
7. Zusätzliche Optimierungen
- Aktivieren Sie das Caching, um die Ladezeiten zu verbessern.
- Nutzen Sie CloudFront (AWS CDN), um die Inhalte näher an Ihre Benutzer zu bringen.
- Richten Sie S3-Bucket-Lebenszyklusrichtlinien ein, um alte Dateien automatisch zu archivieren oder zu löschen.
Fazit
Die Integration von Joomla mit Amazon S3 bietet eine leistungsstarke Möglichkeit, Dateien zu speichern und effizient zu verwalten. Durch die Verwendung einer geeigneten Erweiterung und das Befolgen der oben genannten Schritte können Sie Ihre Joomla-Website erfolgreich mit einem Amazon S3 Bucket verbinden. Dies verbessert die Performance und Skalierbarkeit Ihrer Plattform erheblich.
IAM Permissions
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "jceAWS1",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::your-bucket-name",
"arn:aws:s3:::your-bucket-name/*"
]
}
]
}
Bekannte Fehlermeldungen
Akeeba\S3\Connector::putObject(): [500] AccessDenied:User: arn:aws:iam::***:user/*** is not authorized to perform: kms:GenerateDataKey on resource
- Verschlüsselung auf „Serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3)“
- Bucket-Schlüssel: Deaktiviert
Akeeba\S3\Connector::putObject(): [500] AccessControlListNotSupported:The bucket does not allow ACLs
- cannedacl": "
- https://stackoverflow.com/questions/70333681/for-an-amazon-s3-bucket-deployment-from-github-how-do-i-fix-the-error-accesscont
- AccessControlListNotSupported: ensure ACLs are disabled and "cannedacl": "" is set
Media Manager zeigt keine Dateien an
den JCE Editor oder DPMedia benutzen
S3 URLs not loading
die Berechtigungen prüfen und insbesondere das die Objekte öffentlich sind.
Quellen: