

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Laden Sie Objekte mit vorsignierten Objekten herunter und laden Sie sie hoch URLs
<a name="using-presigned-url"></a>

Sie können presigned verwenden URLs , um zeitlich begrenzten Zugriff auf Objekte in Amazon S3 zu gewähren, ohne Ihre Bucket-Richtlinie zu aktualisieren. Eine vorsignierte URL kann in einem Browser eingegeben oder von einem Programm verwendet werden, um ein Objekt herunterzuladen. Die von der vorsignierten URL verwendeten Anmeldeinformationen sind die des AWS Identity and Access Management (IAM-) Prinzipals, der die URL generiert hat.

Sie können Presigned auch verwenden URLs , um es jemandem zu ermöglichen, ein bestimmtes Objekt in Ihren Amazon S3 S3-Bucket hochzuladen. Dies ermöglicht einen Upload, ohne dass eine andere Partei über AWS Sicherheitsanmeldedaten oder -berechtigungen verfügen muss. Wenn im Bucket bereits ein Objekt mit demselben Schlüssel vorhanden ist, wie in der vorsignierten URL angegeben wird, ersetzt Amazon S3 das vorhandene Objekt durch das hochgeladene Objekt.

Sie können die vorsignierte URL mehrmals verwenden, bis hin zum Ablaufdatum und -zeitpunkt.

Wenn Sie eine vorsignierte URL erstellen, müssen Sie Ihre Sicherheitsanmeldedaten eingeben und dann Folgendes angeben: 
+ Ein Amazon S3 S3-Bucket
+ Ein Objektschlüssel (Herunterladen: dieses Objekt wird sich in Ihrem Amazon-S3-Bucket befinden; Hochladen: der Name der hochzuladenden Datei)
+ Eine HTTP-Methode (`GET` zum Herunterladen von Objekten, `PUT` zum Hochladen, `HEAD` zum Lesen von Objekt-Metadaten usw.)
+ Ein Ablaufzeitintervall

Wenn Sie Presigned URLs zum Hochladen von Objekten verwenden, können Sie die Objektintegrität anhand von Prüfsummen überprüfen. Vorsignierte, die mit AWS Signature Version 2 URLs erstellt wurden, unterstützen zwar nur MD5 Prüfsummen, aber mit AWS Signature Version 4 URLs erstellte Versionen unterstützen zusätzliche Prüfsummenalgorithmen, darunterCRC-64/NVME,, und. CRC32 CRC32C SHA-1 SHA-256 Um diese zusätzlichen Prüfsummenalgorithmen zu verwenden, stellen Sie sicher, dass Sie AWS Signature Version 4 verwenden, und fügen Sie Ihrer Upload-Anfrage den entsprechenden Prüfsummen-Header hinzu. Weitere Informationen über die Objektintegrität finden Sie unter [Überprüfen der Objektintegrität in Amazon S3](checking-object-integrity.md).

**Topics**
+ [Wer eine vorsignierte URL erstellen kann](#who-presigned-url)
+ [Ablaufzeit für vorsignierte URLs](#PresignedUrl-Expiration)
+ [Beschränkung der Funktionen für vorsignierte URLs](#PresignedUrlUploadObject-LimitCapabilities)
+ [Häufig gestellte Fragen für Presigned URLs](#PresignedUrlFAQ)
+ [Gemeinsame Nutzung von Objekten mit vorsignierten URLs](ShareObjectPreSignedURL.md)
+ [Objekte mit vorsignierten Objekten hochladen URLs](PresignedUrlUploadObject.md)

## Wer eine vorsignierte URL erstellen kann
<a name="who-presigned-url"></a>

Alle Benutzer mit gültigen Sicherheitsanmeldeinformationen können vorsignierte URLs erstellen. Um erfolgreich auf ein Objekt zugreifen zu können, muss die vorsignierte URL von jemandem erstellt werden, der die Berechtigung für den Vorgang besitzt, auf dem die vorsignierte URL basiert.

Die Arten von Anmeldeinformationen, die Sie zum Erstellen einer vorsignierten URL verwenden können:
+ **IAM-Benutzer** — Gültig bis zu 7 Tage, wenn Sie AWS Signature Version 4 verwenden.

  Um eine vorsignierte URL zu erstellen, die bis zu 7 Tage gültig ist, delegieren Sie zunächst die IAM-Benutzer-Anmeldeinformationen (den Zugriffsschlüssel und den geheimen Schlüssel) an die Methode, die Sie verwenden, um die vorsignierte URL zu erstellen.
+ **Temporäre Sicherheitsanmeldeinformationen** – Sie können nicht länger gültig sein als die Anmeldeinformationen selbst. Zu diesen Anmeldeinformationen gehören:
  + **IAM-Rollenanmeldeinformationen** – Die vorsignierte URL läuft ab, wenn die Rollensitzung abläuft, auch wenn Sie eine längere Ablaufzeit angeben.
  + **Von Amazon EC2-Instances verwendete IAM-Rollenanmeldeinformationen** – Gültig für die Dauer der Rollenanmeldeinformationen (normalerweise 6 Stunden).
  + **AWS -Security-Token-Service Anmeldeinformationen** — Gültig nur für die Dauer der temporären Anmeldeinformationen.

**Anmerkung**  
Wenn Sie eine vorsignierte URL mit temporären Anmeldeinformationen erstellt haben, verfällt die URL mit Ablauf der Anmeldeinformationen. Im Allgemeinen läuft eine vorsignierte URL ab, wenn die Anmeldeinformationen, mit denen Sie sie erstellt haben, gesperrt, gelöscht oder deaktiviert werden. Dies gilt auch dann, wenn die URL mit einer späteren Ablaufzeit erstellt wurde. Informationen zur Gültigkeitsdauer temporärer Sicherheitsanmeldedaten finden Sie unter [AWS STS API-Operationen vergleichen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) im *IAM-Benutzerhandbuch*.

## Ablaufzeit für vorsignierte URLs
<a name="PresignedUrl-Expiration"></a>

Eine vorsignierte URL bleibt für den Zeitraum gültig, der bei der Generierung der URL angegeben wurde. Wenn Sie eine vorsignierte URL mit der Amazon-S3-Konsole erstellen, kann die Ablaufzeit auf einen Zeitraum zwischen 1 Minute und 12 Stunden festgelegt werden. Wenn Sie das AWS CLI oder verwenden AWS SDKs, kann die Ablaufzeit auf bis zu 7 Tage festgelegt werden.

Wenn Sie eine vorsignierte URL unter Verwendung eines temporären Tokens erstellt haben, läuft die URL ab, sobald der Token abläuft. Im Allgemeinen läuft eine vorsignierte URL ab, wenn die Anmeldeinformationen, mit denen Sie sie erstellt haben, gesperrt, gelöscht oder deaktiviert werden. Dies gilt auch dann, wenn die URL mit einer späteren Ablaufzeit erstellt wurde. Weitere Informationen darüber, wie sich die von Ihnen verwendeten Anmeldeinformationen auf die Ablaufzeit auswirken, finden Sie unter [Wer eine vorsignierte URL erstellen kann](#who-presigned-url).

Amazon S3 überprüft das Ablaufdatum und die Ablaufzeit in einer signierten URL zum Zeitpunkt der HTTP-Anforderung. Beginnt ein Client beispielsweise mit dem Herunterladen einer großen Datei unmittelbar vor der Ablaufzeit, wird der Download auch dann fortgesetzt, wenn die Ablaufzeit während des Downloads verstreicht. Wenn die Verbindung jedoch unterbrochen wird und der Client versucht, den Download nach Ablauf der Zeit erneut zu starten, schlägt der Download fehl.

## Beschränkung der Funktionen für vorsignierte URLs
<a name="PresignedUrlUploadObject-LimitCapabilities"></a>

Die Funktionen einer vorsignierten URL sind durch die Berechtigungen des Benutzers eingeschränkt, der sie erstellt hat. Im Wesentlichen URLs handelt es sich bei vorsignierten Token um Inhaber-Token, die denjenigen Zugang gewähren, die sie besitzen. Daher empfehlen wir Ihnen, sie angemessen zu schützen. Im Folgenden finden Sie einige Methoden, mit denen Sie die Verwendung Ihrer vorsignierten Daten einschränken können. URLs 

**AWS Signatur Version 4 (SigV4)**  
Um ein bestimmtes Verhalten zu erzwingen, wenn vorsignierte URL-Anfragen mit AWS Signature Version 4 (SigV4) authentifiziert werden, können Sie Bedingungsschlüssel in Bucket-Richtlinien und Zugriffspunkt-Richtlinien verwenden. Beispielsweise verwendet die folgende Bucket-Richtlinie die `s3:signatureAge`-Bedingung, um jede vorsignierte URL-Anfrage von Amazon S3 für Objekte im *amzn-s3-demo-bucket*-Bucket zu verweigern, wenn die Signatur mehr als 10 Minuten alt ist. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die *`user input placeholders`* (Platzhalter für Benutzereingaben) durch Ihre Informationen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Deny a presigned URL request if the signature is more than 10 min old",
            "Effect": "Deny",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "NumericGreaterThan": {
                    "s3:signatureAge": "600000"
                }
            }
        }
    ]
}
```

------

Weitere Informationen zu Richtlinienschlüsseln im Zusammenhang mit AWS Signature Version 4 finden Sie unter [AWS Signature Version 4-Authentifizierung](https://docs.aws.amazon.com/AmazonS3/latest/API/bucket-policy-s3-sigv4-conditions.html) in der *Amazon Simple Storage Service API-Referenz*.

**Beschränkung der Netzwege**  
Wenn Sie die Nutzung des vorsignierten URLs und des gesamten Amazon S3 S3-Zugriffs auf bestimmte Netzwerkpfade einschränken möchten, können Sie AWS Identity and Access Management (IAM-) Richtlinien schreiben. Diese Richtlinien können für den IAM-Prinzipal, der den Aufruf vornimmt, den Amazon-S3-Bucket oder beide festgelegt werden. 

Eine Netzwerkpfadbeschränkung für den IAM-Prinzipal erfordert, dass der Benutzer dieser Anmeldeinformationen Anfragen aus dem angegebenen Netzwerk stellt. Eine Einschränkung des Buckets oder des Zugriffspunkts erfordert, dass alle Anfragen an diese Ressource aus dem angegebenen Netz stammen. Diese Einschränkungen gelten auch außerhalb des Szenarios der vorsignierten URL.

Der globale IAM-Bedingungsschlüssel, den Sie verwenden, hängt von der Art des Endpunkts ab. Wenn Sie den öffentlichen Endpunkt für Amazon S3 verwenden, verwenden Sie `aws:SourceIp`. Wenn Sie einen Virtual Private Cloud (VPC)-Endpunkt für Amazon S3 nutzen, verwenden Sie `aws:SourceVpc` oder `aws:SourceVpce`.

Die folgende IAM-Richtlinienerklärung verlangt, dass der Principal AWS nur aus dem angegebenen Netzwerkbereich zugreift. Mit dieser Richtlinie müssen alle Zugriffe von diesem Bereich ausgehen. Dies gilt auch für den Fall, dass jemand eine vorsignierte URL für Amazon S3 verwendet. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die *`user input placeholders`* (Platzhalter für Benutzereingaben) durch Ihre Informationen.

```
{
    "Sid": "NetworkRestrictionForIAMPrincipal",
    "Effect": "Deny",
    "Action": "*",
    "Resource": "*",
    "Condition": {
        "NotIpAddressIfExists": {"aws:SourceIp": "IP-address-range"},
        "BoolIfExists": {"aws:ViaAWSService": "false"}
    }
}
```

## Häufig gestellte Fragen für Presigned URLs
<a name="PresignedUrlFAQ"></a>

**F: Warum URLs läuft meine vorsignierte Version vor der konfigurierten Ablaufzeit ab?**  
Vorsignierte URLs bleiben nur gültig, solange die zugrundeliegenden Anmeldeinformationen gültig sind. Eine vorzeichenbehaftete URL läuft entweder zu ihrer konfigurierten Ablaufzeit ab oder wenn die zugehörigen Anmeldeinformationen ablaufen, je nachdem, was zuerst eintritt. Bei Aufgaben oder Containern von Amazon Elastic Container Service wechseln die Rollenanmeldeinformationen in der Regel alle 1–6 Stunden. Wenn Sie AWS -Security-Token-Service (AWS STS) verwenden AssumeRole, läuft die vorsignierte URL ab, wenn die Rollensitzung endet, was standardmäßig 1 Stunde dauert. Bei Amazon EC2 Instance-Profilen rotieren die Anmeldeinformationen regelmäßig mit einer maximalen Gültigkeitsdauer von ca. 6 Stunden.

**F: Warum erhalte ich einen 403 Forbidden-Fehler, wenn ich auf eine vordefinierte URL zugreife?**  
Vergewissern Sie sich vor der Generierung einer vordefinierten URL, dass Sie die richtigen Berechtigungen konfiguriert haben. Der IAM-Benutzer oder die IAM-Rolle, der/die die URL generiert, muss über die erforderlichen Berechtigungen, wie z. B. `s3:GetObject`, für den spezifischen Vorgang verfügen. Stellen Sie außerdem sicher, dass die Amazon S3-Bucket-Richtlinie den Zugriff auf das Objekt nicht ausdrücklich verweigert.

**F: Ich erhalte `SignatureDoesNotMatch` Fehler. Wie lässt sich dieses Problem beheben?**  
Wenn Sie bei der Verwendung von Amazon S3 Presigned auf `SignatureDoesNotMatch` Fehler stoßen URLs, sollten Sie mehrere häufige Ursachen in Betracht ziehen. Stellen Sie zunächst sicher, dass Ihre Systemuhr mit einem NTP-Server (Network Time Protocol) synchronisiert ist, da selbst kleine Zeitabweichungen Signaturen ungültig machen können. Beachten Sie außerdem, dass einige Unternehmens-Proxys Kopfzeilen oder Abfragezeichenfolgen ändern können, was möglicherweise zu Signaturfehlern führt. Versuchen Sie zur Fehlerbehebung, ohne den Proxy zu testen. Stellen Sie abschließend sicher, dass alle Anforderungsparameter – einschließlich der HTTP-Methode, der Header und der Abfragezeichenfolge – bei der Generierung und Verwendung der URL exakt übereinstimmen. Die Behebung dieser Probleme kann häufig `SignatureDoesNotMatch`-Fehler beheben.

**F: Ich erhalte `ExpiredToken` Fehler. Was soll ich tun?**  
Wenn Sie bei der Verwendung von Presigned `ExpiredToken` Fehler erhalten URLs, bedeutet dies, dass die zur Generierung der URL verwendeten AWS Anmeldeinformationen nicht mehr gültig sind. Um dieses Problem zu beheben, aktualisieren Sie Ihre AWS Anmeldeinformationen, bevor Sie neue URLs vorsignierte Anmeldeinformationen generieren. Für Anwendungen, die lange laufen, empfehlen wir die Implementierung einer Logik zur Aktualisierung der Anmeldeinformationen, um einen kontinuierlichen Zugriff zu gewährleisten. Gegebenenfalls können Sie Anmeldeinformationen mit längerer Lebensdauer verwenden oder Mechanismen zur Aktualisierung von Token implementieren. Wenn Sie AWS -Security-Token-Service (AWS STS) verwenden, stellen Sie sicher AssumeRole, dass Ihre konfigurierte Sitzungsdauer den Anforderungen Ihres Anwendungsfalls entspricht. Denken Sie daran, dass vorsignierte Anmeldeinformationen nur für die Dauer der ihnen zugrunde liegenden Anmeldeinformationen URLs gültig sind. Daher ist die Implementierung einer ordnungsgemäßen Verwaltung der Anmeldeinformationen unerlässlich.

# Gemeinsame Nutzung von Objekten mit vorsignierten URLs
<a name="ShareObjectPreSignedURL"></a>

Standardmäßig sind alle Amazon-S3-Objekte privat und nur der Objekteigentümer hat die Berechtigung, darauf zuzugreifen. Der Objekteigentümer kann Objekte jedoch mit anderen teilen, indem er eine vorsignierte URL erstellt. Eine vorsignierte URL verwendet Sicherheitsanmeldeinformationen, um eine zeitlich begrenzte Berechtigung zum Herunterladen von Objekten zu gewähren. Die URL kann in einem Browser eingegeben oder von einem Programm verwendet werden, um das Objekt herunterzuladen. Die von der vorsignierten URL verwendeten Anmeldeinformationen sind die des AWS Benutzers, der die URL generiert hat.

Allgemeine Informationen zu vorsignierten finden Sie URLs unter. [Laden Sie Objekte mit vorsignierten Objekten herunter und laden Sie sie hoch URLs](using-presigned-url.md)

Sie können eine vorsignierte URL für die gemeinsame Nutzung eines Objekts erstellen, ohne Code schreiben zu müssen, indem Sie die Amazon S3 S3-Konsole, den AWS Explorer für Visual Studio (Windows) oder AWS Toolkit for Visual Studio Code verwenden. Sie können eine vorsignierte URL auch programmgesteuert generieren, indem Sie die AWS Command Line Interface ()AWS CLI oder die verwenden. AWS SDKs

## Verwenden der S3-Konsole
<a name="generating-presigned-url"></a>

 Sie können die Amazon S3 S3-Konsole verwenden, um eine vorsignierte URL für die gemeinsame Nutzung eines Objekts mit bis zu 5 TB zu generieren, indem Sie die folgenden Schritte ausführen. Bei Verwendung der Konsole beträgt die maximale Ablaufzeit für eine vorsignierte URL 12 Stunden ab dem Zeitpunkt ihrer Erstellung.

**So generieren Sie eine vorsignierte URL mit der Amazon-S3-Konsole**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Allzweck-Buckets** aus.

1. Wählen Sie in der Liste **Allzweck-Buckets** den Namen des Allzweck-Buckets, der das Objekt enthält, für das Sie eine vordefinierte URL wünschen.

1. In der Liste **Objekte** wählen Sie das Objekt aus, für das Sie eine vorsignierte URL erstellen möchten.

1. Wählen Sie im Menü **Objektaktionen** die Option **An vorsignierte URL freigeben** aus.

1. Geben Sie an, wie lange die vorsignierte URL gültig sein soll.

1. Wählen Sie **Create presigned URL** (Vorsignierte URL erstellen).

1. Wenn eine Bestätigung angezeigt wird, wird die URL automatisch in Ihre Zwischenablage kopiert. Sie sehen eine Schaltfläche zum Kopieren der vorsignierten URL, wenn Sie sie erneut kopieren müssen.

## Verwenden Sie den AWS CLI
<a name="ShareObjectPresignedCLI"></a>

Der folgende AWS CLI Beispielbefehl generiert eine vorsignierte URL für die gemeinsame Nutzung eines Objekts aus einem Amazon S3 S3-Bucket. Wenn Sie den verwenden AWS CLI, beträgt die maximale Ablaufzeit für eine vorsignierte URL 7 Tage ab dem Zeitpunkt der Erstellung. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die *`user input placeholders`* (Platzhalter für Benutzereingaben) durch Ihre Informationen.

```
aws s3 presign s3://amzn-s3-demo-bucket/mydoc.txt --expires-in 604800
```

Der Parameter `--expires-in` gibt die Verfallszeit in Sekunden an.



**Anmerkung**  
Für alle, die nach dem 20. März 2019 AWS-Regionen gestartet wurden, müssen Sie das `endpoint-url` und `AWS-Region` zusammen mit der Anfrage angeben. Eine Liste aller Amazon-S3-Regionen und -Endpunkte finden Sie unter [Regionen und Endpunkte](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) in der *Allgemeinen AWS -Referenz*.

```
aws s3 presign s3://amzn-s3-demo-bucket/mydoc.txt --expires-in 604800 --region af-south-1 --endpoint-url https://s3.af-south-1.amazonaws.com
```



Weitere Informationen finden Sie unter [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/presign.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/presign.html) in der Referenz zum *AWS CLI -Befehl*.

## Mit dem AWS SDKs
<a name="ShareObjectPreSignedURLSDK"></a>

Sie können eine vorsignierte URL programmgesteuert generieren, indem Sie den verwenden. AWS SDKs

------
#### [ Python ]

 Das folgende Python-Skript generiert eine `GET` vordefinierte URL für die Freigabe eines Objekts.

1. Kopieren Sie den Inhalt des Skripts und speichern Sie es als „“ *get-only-url.py* -Datei. Um die folgenden Beispiele zu verwenden, ersetzen Sie sie durch Ihre eigenen Informationen (z. B. Ihren Dateinamen). *user input placeholders* 

   ```
   import argparse
   import boto3
   from botocore.exceptions import ClientError
   
   def generate_presigned_url(s3_client, client_method, method_parameters, expires_in):
       """
       Generate a presigned Amazon S3 URL that can be used to perform an action.
       
       :param s3_client: A Boto3 Amazon S3 client.
       :param client_method: The name of the client method that the URL performs.
       :param method_parameters: The parameters of the specified client method.
       :param expires_in: The number of seconds the presigned URL is valid for.
       :return: The presigned URL.
       """
       try:
           url = s3_client.generate_presigned_url(
               ClientMethod=client_method,
               Params=method_parameters,
               ExpiresIn=expires_in
           )
       except ClientError:
           print(f"Couldn't get a presigned URL for client method '{client_method}'.")
           raise
       return url
   
   def main():
       parser = argparse.ArgumentParser()
       parser.add_argument("bucket", help="The name of the bucket.")
       parser.add_argument(
           "key", help="The key (path and filename) in the S3 bucket.",
       )
       args = parser.parse_args()
       
       # By default, this will use credentials from ~/.aws/credentials
       s3_client = boto3.client("s3")
       
       # The presigned URL is specified to expire in 1000 seconds
       url = generate_presigned_url(
           s3_client, 
           "get_object", 
           {"Bucket": args.bucket, "Key": args.key}, 
           1000
       )
       print(f"Generated GET presigned URL: {url}")
   
   if __name__ == "__main__":
       main()
   ```

1. Führen Sie das folgende Skript mit Ihrem Bucket-Namen und dem gewünschten Objektpfad aus, um eine `GET`-vorgegebene URL für die Freigabe einer Datei zu generieren. 

    Im folgenden Beispiel wird der Befehl verwendet. Ersetzen Sie *user input placeholders* durch Ihre Informationen.

   ```
   python get-only-url.py amzn-s3-demo-bucket <object-path>
   ```

   Das Skript gibt eine `GET` vorsignierte URL aus:

   ```
   Generated GET presigned URL: https://amzn-s3-demo-bucket.s3.amazonaws.com/object.txt?AWS AccessKeyId=AKIAIOSFODNN7EXAMPLE&Signature=vjbyNxybdZaMmLa%2ByT372YEAiv4%3D&Expires=1741978496
   ```

1. Sie können die Datei unter Verwendung der generierten vordefinierten URL mit curl herunterladen:

   ```
   curl -X GET "generated-presigned-url" -o "path/to/save/file" 
   ```

Weitere Beispiele für die Verwendung von AWS SDKs zum Generieren einer vorsignierten URL für die gemeinsame Nutzung eines Objekts finden [Sie unter Erstellen einer vorsignierten URL für Amazon S3 mithilfe eines AWS SDK](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_Scenario_PresignedUrl_section.html). 

**Anmerkung**  
Für alle, die nach dem 20. März 2019 AWS-Regionen gestartet wurden, müssen Sie das `endpoint-url` und `AWS-Region` zusammen mit der Anfrage angeben. Eine Liste aller Amazon-S3-Regionen und -Endpunkte finden Sie unter [Regionen und Endpunkte](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) in der *Allgemeinen AWS -Referenz*.

**Anmerkung**  
Wenn Sie das verwenden AWS SDKs, muss das Tagging-Attribut ein Header und kein Abfrageparameter sein. Alle anderen Attribute können als Parameter für die vorsignierte URL übergeben werden. 

------

## Verwenden von AWS Toolkit for Visual Studio (Windows)
<a name="ShareObjectPreSignedURLVSExplorer"></a>

**Anmerkung**  
Derzeit AWS Toolkit for Visual Studio unterstützt der Visual Studio für Mac nicht.

1. Installieren Sie das AWS Toolkit for Visual Studio mithilfe der folgenden Anweisungen unter [Installation und Einrichtung des Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/setup.html) im *AWS Toolkit for Visual Studio Benutzerhandbuch*.

1. Connect Sie AWS mithilfe der folgenden Schritte eine [Verbindung zu her: Herstellen einer Verbindung zu AWS](https://docs.aws.amazon.com/AWSToolkitVS/latest/UserGuide/connect.html) im *AWS Toolkit for Visual Studio Benutzerhandbuch*.

1. Führen Sie in der linken Seitenleiste mit der Bezeichnung **AWS Explorer** einen Doppelklick auf den Bucket aus, der Ihr Objekt enthält.

1. Klicken Sie mit der rechten Maustaste auf das Objekt, für das eine vorsignierte URL generiert werden soll, und wählen Sie **Vorsignierte URL erstellen ...** aus .

1. Legen Sie im Pop-up-Fenster das Ablaufdatum und die Ablaufuhrzeit für Ihre vorsignierte URL fest.

1. Der **Objektschlüssel** sollte auf der Grundlage des ausgewählten Objekts vorab ausgefüllt werden.

1. Wählen Sie **GET**, um anzugeben, dass diese vorsignierte URL zum Herunterladen eines Objekts verwendet wird.

1. Wählen Sie die Schaltfläche **Generate (Generieren)** aus.

1. Wählen Sie zum Kopieren der URL in die Zwischenablage **Copy (Kopieren)** aus.

1. Um die generierte vorsignierte URL zu verwenden, fügen Sie die URL in einen beliebigen Browser ein.

## Verwenden AWS Toolkit for Visual Studio Code
<a name="ShareObjectPreSignedURLVSCode"></a>

Wenn Sie Visual Studio Code verwenden, können sie AWS Toolkit for Visual Studio Code verwenden, um eine vorsignierte URL zur Freigabe eines Objekts zu erstellen, ohne Code schreiben zu müssen. Allgemeine Informationen finden Sie unter [AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html) im *AWS Toolkit for Visual Studio Code -Benutzerhandbuch*. 

Anweisungen zur Installation von finden Sie AWS Toolkit for Visual Studio Code unter [Installation von AWS Toolkit for Visual Studio Code im AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-toolkit.html) *Benutzerhandbuch*.

1. Connect Sie AWS mithilfe der folgenden Schritte eine [Verbindung zu her: Herstellen einer Verbindung zu AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/connect.html) im *AWS Toolkit for Visual Studio Code Benutzerhandbuch*.

1. Wählen Sie das AWS Logo im linken Bereich in Visual Studio Code aus.

1. Wählen Sie unter **EXPLORER** **S3** aus.

1. Wählen Sie einen Bucket und eine Datei und öffnen Sie das Kontextmenü (rechte Maustaste).

1. Wählen Sie **Vorsignierte URL generieren** aus und legen Sie dann die Ablaufzeit (in Minuten) fest.

1. Drücken Sie die Eingabetaste, wodurch die vorsignierte URL in Ihre Zwischenablage kopiert wird.

# Objekte mit vorsignierten Objekten hochladen URLs
<a name="PresignedUrlUploadObject"></a>



Sie können presigned verwenden, um jemandem URLs zu ermöglichen, ein Objekt in Ihren Amazon S3 S3-Bucket hochzuladen. Die Verwendung einer vorsignierten URL ermöglicht einen Upload, ohne dass eine andere Partei über AWS Sicherheitsanmeldedaten oder -berechtigungen verfügen muss. Eine vorsignierte URL ist durch die Berechtigungen des Benutzers eingeschränkt, der sie erstellt hat. Das bedeutet, dass Sie ein Objekt, für das Sie eine vorsignierte URL zum Hochladen eines Objekts erhalten haben, nur dann hochladen können, wenn der Ersteller der URL die erforderlichen Berechtigungen zum Hochladen dieses Objekts besitzt.

Wenn jemand das Objekt über die URL hochlädt, erstellt Amazon S3 das Objekt in dem angegebenen Bucket. Wenn im Bucket bereits ein Objekt mit demselben Schlüssel vorhanden ist, der in der vorsignierten URL angegeben wird, ersetzt Amazon S3 das vorhandene Objekt durch das hochgeladene Objekt. Nach dem Upload gehört das Objekt dem Bucket-Besitzer.

Allgemeine Informationen zu vorsignierten finden Sie URLs unter. [Laden Sie Objekte mit vorsignierten Objekten herunter und laden Sie sie hoch URLs](using-presigned-url.md)

Sie können mit AWS -Explorer für Visual Studio eine vorsignierte URL zum Hochladen eines Objekts erstellen, ohne einen Code schreiben zu müssen. Sie können eine vorsignierte URL auch programmgesteuert generieren, indem Sie den verwenden. AWS SDKs

**Anmerkung**  
Derzeit unterstützt der Visual Studio für Mac AWS Toolkit for Visual Studio nicht.

## Verwenden von AWS Toolkit for Visual Studio (Windows)
<a name="upload-object-presignedurl-vsexplorer"></a>

1. Installieren Sie das AWS Toolkit for Visual Studio mithilfe der folgenden Anweisungen unter [Installation und Einrichtung des Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/setup.html) im *AWS Toolkit for Visual Studio Benutzerhandbuch*.

1. Connect Sie AWS mithilfe der folgenden Schritte eine [Verbindung zu her: Herstellen einer Verbindung zu AWS](https://docs.aws.amazon.com/AWSToolkitVS/latest/UserGuide/connect.html) im *AWS Toolkit for Visual Studio Benutzerhandbuch*.

1. Klicken Sie in der linken Seitenleiste mit der Bezeichnung **AWS Explorer** mit der rechten Maustaste auf den Bucket, in den Sie ein Objekt hochladen möchten.

1. Wählen Sie **Vorsignierte URL erstellen** aus.

1. Legen Sie im Pop-up-Fenster das Ablaufdatum und die Ablaufuhrzeit für Ihre vorsignierte URL fest.

1. Geben Sie für **Objektschlüssel** den Namen der Datei ein, die hochgeladen werden soll. Die Datei, die Sie hochladen, muss genau diesem Namen entsprechen. Wenn ein Objekt mit dem gleichen Objektschlüssel bereits im Bucket vorhanden ist, ersetzt Amazon S3 das vorhandene Objekt durch das neu hochgeladene Objekt. 

1. Wählen Sie **PUT**, um anzugeben, dass diese vorsignierte URL zum Hochladen eines Objekts verwendet wird.

1. Wählen Sie die Schaltfläche **Generate (Generieren)** aus.

1. Wählen Sie zum Kopieren der URL in die Zwischenablage **Copy (Kopieren)** aus.

1. Um diese URL zu verwenden, können Sie mit dem `curl`-Befehl eine PUT-Anfrage senden. Geben Sie den vollständigen Pfad zu Ihrer Datei sowie die vorab signierte URL selbst an. 

   ```
   curl -X PUT -T "/path/to/file" "presigned URL"
   ```

## Verwenden von AWS SDKs , um eine `PUT` vorsignierte URL für das Hochladen einer Datei zu generieren
<a name="presigned-urls-upload-sdk"></a>

 Sie können eine vordefinierte URL generieren, die für eine begrenzte Zeit eine S3-Aktion ausführen kann. 

**Anmerkung**  
Wenn Sie die AWS CLI oder verwenden AWS SDKs, URLs kann die Ablaufzeit für Presigned auf bis zu 7 Tage festgelegt werden. Weitere Informationen finden Sie unter [Ablaufzeit für URLs vorsignierte](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html#PresignedUrl-Expiration).

------
#### [ Python ]

 Das folgende Python-Skript generiert eine vordefinierte URL `PUT` für das Hochladen eines Objekts in einen S3-Allzweck-Bucket. 

1. Kopieren Sie den Inhalt des Skripts und speichern Sie es als „*put-only-url.py*“ -Datei. Um die folgenden Beispiele zu verwenden, ersetzen Sie sie durch Ihre eigenen Informationen (z. B. Ihren Dateinamen). *user input placeholders* 

   ```
   import argparse
   import boto3
   from botocore.exceptions import ClientError
   
   def generate_presigned_url(s3_client, client_method, method_parameters, expires_in):
       """
       Generate a presigned Amazon S3 URL that can be used to perform an action.
       
       :param s3_client: A Boto3 Amazon S3 client.
       :param client_method: The name of the client method that the URL performs.
       :param method_parameters: The parameters of the specified client method.
       :param expires_in: The number of seconds the presigned URL is valid for.
       :return: The presigned URL.
       """
       try:
           url = s3_client.generate_presigned_url(
               ClientMethod=client_method,
               Params=method_parameters,
               ExpiresIn=expires_in
           )
       except ClientError:
           print(f"Couldn't get a presigned URL for client method '{client_method}'.")
           raise
       return url
   
   def main():
       parser = argparse.ArgumentParser()
       parser.add_argument("bucket", help="The name of the bucket.")
       parser.add_argument(
           "key", help="The key (path and filename) in the S3 bucket.",
       )
       parser.add_argument(
           "--region", help="The AWS region where the bucket is located.", default="us-east-1"
       )
       parser.add_argument(
           "--content-type", help="The content type of the file to upload.", default="application/octet-stream"
       )
       args = parser.parse_args()
       
       # Create S3 client with explicit region configuration
       s3_client = boto3.client("s3", region_name=args.region)
       
       # Optionally set signature version if needed for older S3 regions
       # s3_client.meta.config.signature_version = 's3v4'
       
       # The presigned URL is specified to expire in 1000 seconds
       url = generate_presigned_url(
           s3_client, 
           "put_object", 
           {
               "Bucket": args.bucket, 
               "Key": args.key,
               "ContentType": args.content_type  # Specify content type
           }, 
           1000
       )
       print(f"Generated PUT presigned URL: {url}")
   
   if __name__ == "__main__":
       main()
   ```

1. Führen Sie das folgende Skript mit Ihrem Bucket-Namen und dem gewünschten Objektpfad aus, um eine URL mit dem Vorzeichen `PUT` zum Hochladen einer Datei zu generieren. 

    Im folgenden Beispiel wird der Befehl verwendet. Ersetzen Sie *user input placeholders* durch Ihre Informationen.

   ```
   python put-only-url.py amzn-s3-demo-bucket <object-path> --region us-east-1 --content-type application/octet-stream
   ```

   Das Skript gibt eine `PUT` vorsignierte URL aus:

   ```
   Generated PUT presigned URL: https://amzn-s3-demo-bucket.s3.amazonaws.com/object.txt?AWS AccessKeyId=AKIAIOSFODNN7EXAMPLE&Signature=vjbyNxybdZaMmLa%2ByT372YEAiv4%3D&Expires=1741978496
   ```

1. Sie können die Datei nun mit der generierten vordefinierten URL mit curl hochladen. Achten Sie darauf, dass Sie denselben Inhaltstyp verwenden, der auch bei der Erstellung der URL verwendet wurde:

   ```
   curl -X PUT -T "path/to/your/local/file" -H "Content-Type: application/octet-stream" "generated-presigned-url"
   ```

   Wenn Sie bei der Erstellung der URL einen anderen Inhaltstyp angegeben haben, müssen Sie diesen Inhaltstyp auch im curl-Befehl verwenden.

Weitere Beispiele für die AWS SDKs Generierung einer vorsignierten URL für das Hochladen eines Objekts finden [Sie unter Erstellen einer vorsignierten URL für Amazon S3 mithilfe](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_Scenario_PresignedUrl_section.html) eines SDK. AWS 

**Behebung von Fehlern SignatureDoesNotMatch**  
Wenn Sie bei der Verwendung von presigned auf einen `SignatureDoesNotMatch` Fehler stoßen URLs, überprüfen Sie Folgendes:  
Stellen Sie sicher, dass Ihre Systemzeit mit einem zuverlässigen Zeitserver synchronisiert ist.
Stellen Sie sicher, dass Sie die URL genau so verwenden, wie sie generiert wurde, ohne irgendwelche Änderungen.
Prüfen Sie, ob die URL abgelaufen ist, und erstellen Sie bei Bedarf eine neue.
Stellen Sie sicher, dass der Inhaltstyp in Ihrer Upload-Anforderung mit dem Inhaltstyp übereinstimmt, der bei der Generierung der URL angegeben wurde.
Stellen Sie sicher, dass Sie die richtige Region für den Bucket verwenden
Wenn Sie curl verwenden, schließen Sie die URL in Anführungszeichen ein, um Sonderzeichen korrekt zu behandeln

------