Kann ich Dateien aus Object Storage automatisch öffentlich freigeben?
Ja, dies ist mit der S3-API möglich. Die Schritte zur Einrichtung finden Sie unten.
Wie kann ich Dateien aus Object Storage automatisch öffentlich freigeben?
- Richten Sie Ihr S3-Tool ein. Der einfachste Weg ist die Verwendung von aws cli. Bitte stellen Sie sicher, dass es richtig installiert und konfiguriert ist.
- Erstellen Sie eine Datei public-sharing-policy.json mit dem folgenden Inhalt:
{ „Id“: „ihr-schöner-name“, „Version“: „2012-10-17“, „Statement“: [ { „Action“: [ „s3:GetObject“ ], „Effekt“: „Erlauben“, „Ressource“: [ „arn:aws:s3:::foldername/file“ ], „Principal“: „*“ } ] }
Dies ermöglicht (Effect) das Lesen von Objekten (s3:GetObject) durch jeden (Principal) für die angegebene Datei (Resource).
- Als nächstes müssen Sie die öffentliche Freigabe für einen Ordner und alle seine Unterelemente aktivieren. Erstellen Sie dazu eine Datei public-sharing-policy.json mit folgendem Inhalt:
{ „Id“: „ihr-schöner-name“, „Version“: „2012-10-17“, „Statement“: [ { „Action“: [ „s3:GetObject“ ], „Effekt“: „Erlauben“, „Ressource“: [ „arn:aws:s3:::foldername/*“ ], „Principal“: „*“ } ] }
- Bitte beachten Sie, dass der S3 Object Storage keine Dateiliste im Browser unterstützt. Die s3TenantId kann über die Contabo API abgefragt werden.
Der einzige Unterschied ist, dass Sie „*“ als Platzhalter für den Dateinamen verwenden. Natürlich können Sie auch Konstrukte
wie „arn:aws:s3:::foldername1/foldername2/*“ verwenden.
Wie kann ich die öffentliche Freigabe über die S3-API deaktivieren?
Um die öffentliche Freigabe für eine Datei oder einen Ordner zu deaktivieren, müssen Sie zunächst die aktuelle Richtlinie abfragen:
aws --profile eu2 --endpoint-url https://eu2.contabostorage.com s3api get-bucket-policy --bucket foo
Entfernen Sie dann die Teile, die Sie entfernen möchten, und führen Sie put-bucket-policy erneut mit der geänderten Datei aus. Wenn es der letzte Eintrag darin ist, können Sie ihn auch komplett löschen:
aws --profile eu2 --endpoint-url https://eu2.contabostorage.com s3api delete-bucket-policy --bucket foo
Seien Sie jedoch vorsichtig, da dadurch alle Richtlinien für diesen Bucket gelöscht werden.