Zum Inhalt springen

Erstellen Sie vorsignierte URLs in Object Storage

Zuletzt aktualisiert am

Eine vorsignierte URL gewährt temporären Zugriff ohne Anmeldeinformationen auf ein bestimmtes Objekt. Dies ist nützlich, um Dateien mit externen Benutzern zu teilen oder zeitlich begrenzte Uploads zu ermöglichen, ohne Ihre Anmeldeinformationen preiszugeben.

  • Object Storage aktiviert und Anmeldeinformationen konfiguriert: Object Storage aktivieren
  • AWS CLI oder s5cmd installiert und für STACKIT Object Storage konfiguriert

Verwenden Sie den Befehl presign, um eine vorsignierte URL für ein Objekt zu erstellen. Der Wert von --expires-in wird in Sekunden angegeben:

Terminal-Fenster
aws s3 presign s3://my-example-bucket/testfile.txt \
--expires-in 3600 \
--endpoint-url https://object.storage.eu01.onstackit.cloud

Dadurch wird eine URL erstellt, die für 3600 Sekunden (1 Stunde) Lesezugriff auf testfile.txt gewährt.

Erstellen Sie eine vorsignierte URL mit dem Python SDK

Abschnitt betitelt „Erstellen Sie eine vorsignierte URL mit dem Python SDK“

Im folgenden Beispiel wird das AWS SDK for Python (Boto3) verwendet, um eine vorsignierte URL mit Schreibzugriff (PUT) auf ein bestimmtes Objekt zu erstellen:

import boto3
def request_presigned_post():
S3_ENDPOINT = "https://object.storage.eu01.onstackit.cloud"
S3_ACCESS_KEY = "YOUR_ACCESS_KEY"
S3_SECRET_KEY = "YOUR_SECRET_KEY"
S3_BUCKET = "YOUR_BUCKET"
s3key = "YOUR_FILE"
s3client = boto3.client(
's3',
endpoint_url=S3_ENDPOINT,
aws_access_key_id=S3_ACCESS_KEY,
aws_secret_access_key=S3_SECRET_KEY,
)
presigned_request = s3client.generate_presigned_url(
'put_object',
Params={'Bucket': S3_BUCKET, 'Key': s3key},
ExpiresIn=3600,
)
print(presigned_request)
def main():
request_presigned_post()
if __name__ == "__main__":
main()

Ausführliche Informationen zum Generieren vorsignierter URLs finden Sie in der Boto3-Dokumentation.