# S3 Buckets: Eine einfache Möglichkeit statische Inhalte auszuliefern Im Netz haben sich Amazons **S**imple **S**torage **S**ervice Buckets sehr weit verbreitet. Andere Dienste haben die gleiche Schnittstelle wie AWS S3 Buckets implementiert und so ist es erfreulicherweise möglich auch Open Source Lösungen zu finden, die das gleiche Protokoll wie Amazon implementieren. Wir verwenden dafür [Minio](https://www.minio.io/), welches das Erzeugen eigener Buckets erlaubt, wobei wir die Daten auf unseren Servern an der Universität behalten können. Die Installation ist auf Client- wie auf Serverseite sehr einfach und kann für einzelne Arbeitsgruppen angelegt werden. Die Arbeitsgruppen können darin dann ihre eigenen Buckets definieren und statische Inhalte verteilen. Das Arbeiten mit Buckets ist unglaublich einfach und flott. Außerdem ist die CORS-Policy offener eingestellt, sodass man keine CORS-Probleme haben sollte, wenn man statische Inhalte bspw. für eine Webseite über den Bucket verteilen möchte. Mögliche Einsatzszenarien sind das Verteilen von CSS oder JavaScript-Dateien für Websites oder das Ablegen von Artefakten im Build-Prozess unserer CI (hier werden auch diverse Buckets schon eingesetzt und Cachen bspw. Build-Artefakte). Wer eigene Buckets für seine Arbeitsgruppe haben möchte, kann sich bei Thomas melden. #### CLI Anwendung Es gibt CLI-Anwendungen, die die Nutzung von Buckets noch viel bequemer machen. Beispielsweise [mc](https://github.com/minio/mc), welches das Kopieren von Dateien direkt über die Konsole ermöglicht. Beispielszenario: Wir kompilieren und minimieren eine / mehrere Javascript-Dateien und möchten diese auf unserer Projektseite veröffentlichen. Die minimierte Datei nennt sich `example.js` und soll in den Bucket `static` des Lehrstuhls `Rechnernetze (cn)` gesteckt werden. Der Befehl kann dann bspw. so aussehen: $ mcli cp resources/public/js/compiled/example.js cn/static/ Die Bucket-Policy vom Bucket `static` der Gruppe `cn` soll dabei auf `public` stehen, damit es keine Beschränkungen beim Zugriff der Dateien gibt. Frontend kann das granular eingestellt werden. Nun kann die Datei über den Bucket-Host angefragt und in einer HTML hinterlegt werden: