

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.

# Presigned URLs for S3 auf Outposts verwenden
<a name="S3OutpostsPresignedURL"></a>

Um zeitlich begrenzten Zugriff auf Objekte zu gewähren, die lokal auf einem Outpost gespeichert sind, ohne Ihre Bucket-Richtlinie zu aktualisieren, können Sie eine vorsignierte URL verwenden. Mit Presigned URLs können Sie als Bucket-Besitzer Objekte mit Personen in Ihrer Virtual Private Cloud (VPC) teilen oder ihnen die Möglichkeit geben, Objekte hochzuladen oder zu löschen. 

Wenn Sie eine vorsignierte URL mithilfe von AWS SDKs oder AWS Command Line Interface (AWS CLI) erstellen, verknüpfen Sie die URL mit einer bestimmten Aktion. Sie können auch einen zeitlich begrenzten Zugriff auf die vorsignierte URL gewähren, indem Sie eine benutzerdefinierte Ablaufzeit wählen, die zwischen 1 Sekunde und 7 Tagen liegen kann. Wenn Sie die vorsignierte URL freigeben, kann die Person in der VPC die in der URL eingebettete Aktion so ausführen, als wäre sie der ursprünglich signierende Benutzer. Wenn die URL ihre Verfallszeit erreicht, läuft sie ab und funktioniert nicht mehr.

## Beschränkung der Funktionen für vorsignierte URLs
<a name="S3OutpostsPresignedUrlUploadObjectLimitCapabilities"></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 Zugriff gewähren, die sie besitzen. Daher empfehlen wir Ihnen, sie angemessen zu schützen. 

**AWS Signatur Version 4 (SigV4)**  
Um ein bestimmtes Verhalten zu erzwingen, wenn vorsignierte URL-Anfragen mithilfe von AWS Signature Version 4 (Sigv4) authentifiziert werden, können Sie Bedingungsschlüssel in Bucket-Richtlinien und Zugriffspunktrichtlinien verwenden. Sie können z. B. eine Bucket-Richtlinie erstellen, die die `s3-outposts:signatureAge`-Bedingung verwendet, um jede vorsignierte URL-Anfrage von Amazon S3 on Outposts für Objekte im `example-outpost-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 minutes old",
            "Effect": "Deny",
            "Principal": {"AWS":"444455556666"},
            "Action": "s3-outposts:*",
            "Resource": "arn:aws:s3-outposts:us-east-1:111122223333:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket/object/*",
            "Condition": {
                "NumericGreaterThan": {"s3-outposts:signatureAge": 600000},
                "StringEquals": {"s3-outposts:authType": "REST-QUERY-STRING"}
            }
        }
    ]
}
```

------

Eine Liste von Bedingungsschlüsseln und zusätzlichen Beispielrichtlinien, die Sie verwenden können, um ein bestimmtes Verhalten zu erzwingen, wenn vorsignierte URL-Anfragen mit Hilfe von Signature Version 4 authentifiziert werden, finden Sie unter [AWS Authentifizierungsspezifische Richtlinienschlüssel für Signature Version 4 (Sigv4)](s3-outposts-bucket-policy-s3-sigv4-conditions.md).

**Beschränkung der Netzwege**  
Wenn Sie die Verwendung von vorsignierten URLs und allen S3-On-Outposts-Zugriffen auf bestimmte Netzwerkpfade einschränken möchten, können Sie Richtlinien schreiben, die einen bestimmten Netzwerkpfad erfordern. Um die Beschränkung für den IAM-Prinzipal festzulegen, der den Anruf tätigt, können Sie identitätsbasierte Richtlinien AWS Identity and Access Management (IAM) verwenden (z. B. Benutzer-, Gruppen- oder Rollenrichtlinien). Um die Beschränkung für die Ressource S3 on Outposts festzulegen, können Sie ressourcenbasierte Richtlinien verwenden (z. B. Bucket- und Zugriffspunkt-Richtlinien). 

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.

Die globale IAM-Bedingung, die Sie verwenden, hängt von der Art des Endpunkts ab. Wenn Sie den öffentlichen Endpunkt für S3 on Outposts verwenden, benutzen Sie `aws:SourceIp`. Wenn Sie einen VPC-Endpunkt für S3 on Outposts verwenden, verwenden Sie `aws:SourceVpc` oder `aws:SourceVpce`.

Die folgende IAM-Richtlinienanweisung 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 S3 on Outposts 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"}
    }
}
```

Ein Beispiel für eine Bucket-Richtlinie, die den `aws:SourceIP` AWS globalen Bedingungsschlüssel verwendet, um den Zugriff auf einen S3 on Outposts-Bucket auf einen bestimmten Netzwerkbereich zu beschränken, finden Sie unter[Einrichten von IAM mit S3 on Outposts](S3OutpostsIAM.md).

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

Alle Benutzer mit gültigen Sicherheitsanmeldeinformationen können vorsignierte URLs erstellen. Damit ein Benutzer in der VPC jedoch erfolgreich auf ein Objekt zugreifen kann, muss die zugewiesene URL von jemandem erstellt werden, der die Berechtigung hat, den Vorgang durchzuführen, auf dem die zugewiesene URL basiert.

Sie können die folgenden Anmeldeinformationen verwenden, um eine vorsignierte URL zu erstellen:
+ **IAM-Instance-Profil** – Bis zu 6 Stunden gültig.
+ **AWS -Security-Token-Service** – Gültig bis zu 36 Stunden, wenn mit dauerhaften Anmeldeinformationen signiert wird, z. B. mit den Anmeldeinformationen des AWS-Konto Stammbenutzers oder eines IAM-Benutzers.
+ **IAM-Benutzer** — Gültig bis zu 7 Tage, wenn Sie AWS Signature Version 4 verwenden.

  Um eine vordefinierte 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 das von Ihnen verwendete SDK. Generieren Sie anschließend mithilfe von AWS Signature Version 4 eine vorsignierte URL.

**Anmerkung**  
Wenn Sie eine vorsignierte URL mit einem temporären Token erstellt haben, läuft die URL ab, wenn das Token abläuft, auch wenn Sie die URL mit einer späteren Ablaufzeit erstellt haben.
Da vorsignierte Personen Zugriff auf Ihre S3 on Outposts-Buckets URLs gewähren, empfehlen wir Ihnen, sie entsprechend zu schützen. Weitere Informationen zum Schutz URLs vorsignierter Benutzer finden Sie unter. [Beschränkung der Funktionen für vorsignierte URLs](#S3OutpostsPresignedUrlUploadObjectLimitCapabilities)

## Wann prüft S3 on Outposts das Ablaufdatum und die Uhrzeit einer vorsignierten URL?
<a name="S3Outpostspresigned-url-when-checked"></a>

Zum Zeitpunkt der HTTP-Anfrage überprüft S3 on Outposts das Ablaufdatum und die Uhrzeit einer signierten URL. 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.

Weitere Informationen zur Verwendung einer vorsignierten URL zum Teilen oder Hochladen von Objekten finden Sie in den folgenden Themen.

**Topics**
+ [Beschränkung der Funktionen für vorsignierte URLs](#S3OutpostsPresignedUrlUploadObjectLimitCapabilities)
+ [Wer eine vorsignierte URL erstellen kann](#S3Outpostswho-presigned-url)
+ [Wann prüft S3 on Outposts das Ablaufdatum und die Uhrzeit einer vorsignierten URL?](#S3Outpostspresigned-url-when-checked)
+ [Objekte mithilfe von Presigned teilen URLs](S3OutpostsShareObjectPresignedURL.md)
+ [Generierung einer vorsignierten URL zum Hochladen eines Objekts in einen S3 on Outposts-Bucket](S3OutpostsPresignedUrlUploadObject.md)

# Objekte mithilfe von Presigned teilen URLs
<a name="S3OutpostsShareObjectPresignedURL"></a>

Um zeitlich begrenzten Zugriff auf Objekte zu gewähren, die lokal auf einem Outpost gespeichert sind, ohne Ihre Bucket-Richtlinie zu aktualisieren, können Sie eine vorsignierte URL verwenden. Mit Presigned URLs können Sie als Bucket-Besitzer Objekte mit Personen in Ihrer Virtual Private Cloud (VPC) teilen oder ihnen die Möglichkeit geben, Objekte hochzuladen oder zu löschen. 

Wenn Sie eine vorsignierte URL mithilfe von AWS SDKs oder AWS Command Line Interface (AWS CLI) erstellen, verknüpfen Sie die URL mit einer bestimmten Aktion. Sie können auch einen zeitlich begrenzten Zugriff auf die vorsignierte URL gewähren, indem Sie eine benutzerdefinierte Ablaufzeit wählen, die zwischen 1 Sekunde und 7 Tagen liegen kann. Wenn Sie die vorsignierte URL freigeben, kann die Person in der VPC die in der URL eingebettete Aktion so ausführen, als wäre sie der ursprünglich signierende Benutzer. Wenn die URL ihre Verfallszeit erreicht, läuft sie ab und funktioniert nicht mehr.



Wenn Sie eine vorsignierte URL erstellen, müssen Sie Ihre Sicherheitsanmeldedaten eingeben und dann Folgendes angeben: 
+ Ein Zugriffspunkt Amazon-Ressourcenname (ARN) für den Amazon S3 on Outposts Bucket
+ Ein Objektschlüssel
+ Eine HTTP-Methode (`GET` zum Herunterladen von Objekten)
+ Ein Verfallsdatum und eine Verfallszeit

Eine vorsignierte URL ist nur für die angegebene Dauer gültig. Das heißt, Sie müssen die von der URL erlaubte Aktion vor dem Ablaufdatum und der Ablaufzeit starten. Sie können eine vorsignierte URL bis zum Ablaufdatum und zur Ablaufzeit mehrfach verwenden. Wenn Sie eine vorsignierte URL mit einem temporären Token erstellt haben, läuft die URL ab, wenn das Token abläuft, auch wenn Sie die URL mit einer späteren Ablaufzeit erstellt haben.

Benutzer in der Virtual Private Cloud (VPC), die Zugriff auf die vorsignierte URL haben, können auf das Objekt zugreifen. Wenn Sie beispielsweise ein Video in Ihrem Bucket haben und sowohl der Bucket als auch das Objekt privat sind, können Sie das Video mit anderen teilen, indem Sie eine vorsignierte URL generieren. Da vorsignierte Personen Zugriff auf Ihre S3 on Outposts-Buckets URLs gewähren, empfehlen wir Ihnen, diese entsprechend zu schützen. URLs Weitere Informationen zum Schutz URLs vorsignierter Benutzer finden Sie unter. [Beschränkung der Funktionen für vorsignierte URLs](S3OutpostsPresignedURL.md#S3OutpostsPresignedUrlUploadObjectLimitCapabilities) 

Alle Benutzer mit gültigen Sicherheitsanmeldeinformationen können vorsignierte URLs erstellen. Die vorsignierte URL muss jedoch von jemandem erstellt werden, der die Berechtigung hat, den Vorgang durchzuführen, auf dem die vorsignierte URL basiert. Weitere Informationen finden Sie unter [Wer eine vorsignierte URL erstellen kann](S3OutpostsPresignedURL.md#S3Outpostswho-presigned-url).

Sie können eine vorsignierte URL generieren, um ein Objekt in einem S3 on Outposts-Bucket gemeinsam zu nutzen, indem Sie den AWS SDKs und den verwenden. AWS CLI Weitere Informationen finden Sie in den folgenden Beispielen. 

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

Sie können das verwenden AWS SDKs , um eine vorsignierte URL zu generieren, die Sie an andere weitergeben können, damit diese ein Objekt abrufen können. 

**Anmerkung**  
Wenn Sie den verwenden, AWS SDKs um eine vorsignierte URL zu generieren, beträgt die maximale Ablaufzeit für eine vorsignierte URL 7 Tage ab dem Zeitpunkt der Erstellung. 

------
#### [ Java ]

**Example**  
Das folgende Beispiel generiert eine vorsignierte URL, die Sie an andere weitergeben können, damit diese ein Objekt aus einem S3 on Outposts-Bucket abrufen können. Weitere Informationen finden Sie unter [Presigned URLs for S3 auf Outposts verwenden](S3OutpostsPresignedURL.md). Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die *`user input placeholders`* (Platzhalter für Benutzereingaben) durch Ihre Informationen.  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.HttpMethod;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest;

import java.io.IOException;
import java.net.URL;
import java.time.Instant;

public class GeneratePresignedURL {

    public static void main(String[] args) throws IOException {
        Regions clientRegion = Regions.DEFAULT_REGION;
        String accessPointArn = "*** access point ARN ***";
        String objectKey = "*** object key ***";

        try {
            AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                    .withRegion(clientRegion)
                    .withCredentials(new ProfileCredentialsProvider())
                    .build();

            // Set the presigned URL to expire after one hour.
            java.util.Date expiration = new java.util.Date();
            long expTimeMillis = Instant.now().toEpochMilli();
            expTimeMillis += 1000 * 60 * 60;
            expiration.setTime(expTimeMillis);

            // Generate the presigned URL.
            System.out.println("Generating pre-signed URL.");
            GeneratePresignedUrlRequest generatePresignedUrlRequest =
                    new GeneratePresignedUrlRequest(accessPointArn, objectKey)
                            .withMethod(HttpMethod.GET)
                            .withExpiration(expiration);
            URL url = s3Client.generatePresignedUrl(generatePresignedUrlRequest);

            System.out.println("Pre-Signed URL: " + url.toString());
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process 
            // it, so it returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

------
#### [ .NET ]

**Example**  
Das folgende Beispiel generiert eine vorsignierte URL, die Sie an andere weitergeben können, damit diese ein Objekt aus einem S3 on Outposts-Bucket abrufen können. Weitere Informationen finden Sie unter [Presigned URLs for S3 auf Outposts verwenden](S3OutpostsPresignedURL.md). Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die *`user input placeholders`* (Platzhalter für Benutzereingaben) durch Ihre Informationen.   

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;

namespace Amazon.DocSamples.S3
{
    class GenPresignedURLTest
    {
        private const string accessPointArn = "*** access point ARN ***"; 
        private const string objectKey = "*** object key ***";
        // Specify how long the presigned URL lasts, in hours.
        private const double timeoutDuration = 12;
        // Specify your bucket Region (an example Region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
        private static IAmazonS3 s3Client;

        public static void Main()
        {
            s3Client = new AmazonS3Client(bucketRegion);
            string urlString = GeneratePreSignedURL(timeoutDuration);
        }
        static string GeneratePreSignedURL(double duration)
        {
            string urlString = "";
            try
            {
                GetPreSignedUrlRequest request1 = new GetPreSignedUrlRequest
                {
                    BucketName = accessPointArn,
                    Key = objectKey,
                    Expires = DateTime.UtcNow.AddHours(duration)
                };
                urlString = s3Client.GetPreSignedURL(request1);
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
            return urlString;
        }
    }
}
```

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

Das folgende Beispiel generiert eine vorsignierte URL zur Freigabe eines Objekts mit Hilfe des SDK für Python (Boto3). Verwenden Sie z. B. einen Boto3-Client und die `generate_presigned_url` Funktion, um eine vorsignierte URL zu generieren, die Ihnen ermöglicht zu `GET` ein Objekt.

```
import boto3
    url = boto3.client('s3').generate_presigned_url(
    ClientMethod='get_object', 
    Params={'Bucket': 'ACCESS_POINT_ARN', 'Key': 'OBJECT_KEY'},
    ExpiresIn=3600)
```

Weitere Informationen zur Verwendung von SDK for Python (Boto3) zur Erzeugung einer vorsignierten URL finden Sie unter [Python](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.generate_presigned_url) in der *API–Referenz für AWS SDK für Python (Boto) *.

------

## Unter Verwendung der AWS CLI
<a name="S3OutpostsShareObjectPresignedCLI"></a>

Der folgende AWS CLI Beispielbefehl generiert eine vorsignierte URL für einen S3 on Outposts-Bucket. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die *`user input placeholders`* (Platzhalter für Benutzereingaben) durch Ihre Informationen.

**Anmerkung**  
Wenn Sie den verwenden, AWS CLI um eine vorsignierte URL zu generieren, beträgt die maximale Ablaufzeit für eine vorsignierte URL 7 Tage ab dem Zeitpunkt der Erstellung. 

```
aws s3 presign s3://arn:aws:s3-outposts:us-east-1:111122223333:outpost/op-01ac5d28a6a232904/accesspoint/example-outpost-access-point/mydoc.txt --expires-in 604800
```

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

# Generierung einer vorsignierten URL zum Hochladen eines Objekts in einen S3 on Outposts-Bucket
<a name="S3OutpostsPresignedUrlUploadObject"></a>

Um zeitlich begrenzten Zugriff auf Objekte zu gewähren, die lokal auf einem Outpost gespeichert sind, ohne Ihre Bucket-Richtlinie zu aktualisieren, können Sie eine vorsignierte URL verwenden. Mit Presigned URLs können Sie als Bucket-Besitzer Objekte mit Personen in Ihrer Virtual Private Cloud (VPC) teilen oder ihnen die Möglichkeit geben, Objekte hochzuladen oder zu löschen. 

Wenn Sie eine vorsignierte URL mithilfe von AWS SDKs oder AWS Command Line Interface (AWS CLI) erstellen, verknüpfen Sie die URL mit einer bestimmten Aktion. Sie können auch einen zeitlich begrenzten Zugriff auf die vorsignierte URL gewähren, indem Sie eine benutzerdefinierte Ablaufzeit wählen, die zwischen 1 Sekunde und 7 Tagen liegen kann. Wenn Sie die vorsignierte URL freigeben, kann die Person in der VPC die in der URL eingebettete Aktion so ausführen, als wäre sie der ursprünglich signierende Benutzer. Wenn die URL ihre Verfallszeit erreicht, läuft sie ab und funktioniert nicht mehr.

Wenn Sie eine vorsignierte URL erstellen, müssen Sie Ihre Sicherheitsanmeldedaten eingeben und dann Folgendes angeben: 
+ Ein Zugriffspunkt Amazon-Ressourcenname (ARN) für den Amazon S3 on Outposts Bucket
+ Ein Objektschlüssel
+ Eine HTTP-Methode (`PUT` zum Hochladen von Objekten)
+ Ein Verfallsdatum und eine Verfallszeit

Eine vorsignierte URL ist nur für die angegebene Dauer gültig. Das heißt, Sie müssen die von der URL erlaubte Aktion vor dem Ablaufdatum und der Ablaufzeit starten. Sie können eine vorsignierte URL bis zum Ablaufdatum und zur Ablaufzeit mehrfach verwenden. Wenn Sie eine vorsignierte URL mit einem temporären Token erstellt haben, läuft die URL ab, wenn das Token abläuft, auch wenn Sie die URL mit einer späteren Ablaufzeit erstellt haben. 

Wenn die von einer vorsignierten URL erlaubte Aktion aus mehreren Schritten besteht, wie z. B. ein mehrteiliger Upload, müssen Sie alle Schritte vor Ablauf der Zeit starten. Wenn S3 on Outposts versucht, einen Schritt mit einer abgelaufenen URL zu starten, erhalten Sie eine Fehlermeldung.

Benutzer in der Virtual Private Cloud (VPC), die Zugriff auf die vorsignierte URL haben, können Objekte hochladen. So kann beispielsweise ein Benutzer in der VPC, der Zugriff auf die vorsignierte URL hat, ein Objekt in Ihren Bucket hochladen. Da vorsignierte jedem Benutzer in der VPC, der Zugriff auf die vorsignierte URL hat, Zugriff auf Ihren S3 on Outposts-Bucket URLs gewähren, empfehlen wir Ihnen, diese entsprechend zu schützen. URLs Weitere Informationen zum Schutz vorsignierter Benutzer finden Sie unter. URLs [Beschränkung der Funktionen für vorsignierte URLs](S3OutpostsPresignedURL.md#S3OutpostsPresignedUrlUploadObjectLimitCapabilities) 

Alle Benutzer mit gültigen Sicherheitsanmeldeinformationen können vorsignierte URLs erstellen. Die vorsignierte URL muss jedoch von jemandem erstellt werden, der die Berechtigung hat, den Vorgang durchzuführen, auf dem die vorsignierte URL basiert. Weitere Informationen finden Sie unter [Wer eine vorsignierte URL erstellen kann](S3OutpostsPresignedURL.md#S3Outpostswho-presigned-url).

## Verwenden von AWS SDKs , um eine vorsignierte URL für einen S3 on Outposts-Objektvorgang zu generieren
<a name="s3-outposts-presigned-urls-upload-examples"></a>

------
#### [ Java ]

**SDK für Java 2.x**  
Dieses Beispiel zeigt, wie Sie eine vorsignierte URL generieren, mit der Sie ein Objekt für eine begrenzte Zeit in einen S3 on Outposts-Bucket hochladen können. Weitere Informationen finden Sie unter [Presigned URLs for S3 auf Outposts verwenden](S3OutpostsPresignedURL.md).   

```
    public static void signBucket(S3Presigner presigner, String outpostAccessPointArn, String keyName) {

        try {
            PutObjectRequest objectRequest = PutObjectRequest.builder()
                    .bucket(accessPointArn)
                    .key(keyName)
                    .contentType("text/plain")
                    .build();

            PutObjectPresignRequest presignRequest = PutObjectPresignRequest.builder()
                    .signatureDuration(Duration.ofMinutes(10))
                    .putObjectRequest(objectRequest)
                    .build();

            PresignedPutObjectRequest presignedRequest = presigner.presignPutObject(presignRequest);


            String myURL = presignedRequest.url().toString();
            System.out.println("Presigned URL to upload a file to: " +myURL);
            System.out.println("Which HTTP method must be used when uploading a file: " +
                    presignedRequest.httpRequest().method());

            // Upload content to the S3 on Outposts bucket by using this URL.
            URL url = presignedRequest.url();

            // Create the connection and use it to upload the new object by using the presigned URL.
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setDoOutput(true);
            connection.setRequestProperty("Content-Type","text/plain");
            connection.setRequestMethod("PUT");
            OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
            out.write("This text was uploaded as an object by using a presigned URL.");
            out.close();

            connection.getResponseCode();
            System.out.println("HTTP response code is " + connection.getResponseCode());

        } catch (S3Exception e) {
            e.getStackTrace();
        } catch (IOException e) {
            e.getStackTrace();
        }
    }
```

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

**SDK für Python (Boto3)**  
In diesem Beispiel wird gezeigt, wie man eine vorsignierte URL generiert, die für eine begrenzte Zeit eine S3 on Outposts-Aktion ausführen kann. Weitere Informationen finden Sie unter [Presigned URLs for S3 auf Outposts verwenden](S3OutpostsPresignedURL.md). Um eine Anfrage mit der URL zu stellen, verwenden Sie das `Requests` Paket.  

```
import argparse
import logging
import boto3
from botocore.exceptions import ClientError
import requests

logger = logging.getLogger(__name__)


def generate_presigned_url(s3_client, client_method, method_parameters, expires_in):
    """
    Generate a presigned S3 on Outposts 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 that 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
        )
        logger.info("Got presigned URL: %s", url)
    except ClientError:
        logger.exception(
            "Couldn't get a presigned URL for client method '%s'.", client_method)
        raise
    return url


def usage_demo():
    logging.basicConfig(level=logging.INFO, format='%(levelname)s: %(message)s')

    print('-'*88)
    print("Welcome to the Amazon S3 on Outposts presigned URL demo.")
    print('-'*88)

    parser = argparse.ArgumentParser()
    parser.add_argument('accessPointArn', help="The name of the S3 on Outposts access point ARN.")
    parser.add_argument(
        'key', help="For a GET operation, the key of the object in S3 on Outposts. For a "
                    "PUT operation, the name of a file to upload.")
    parser.add_argument(
        'action', choices=('get', 'put'), help="The action to perform.")
    args = parser.parse_args()

    s3_client = boto3.client('s3')
    client_action = 'get_object' if args.action == 'get' else 'put_object'
    url = generate_presigned_url(
        s3_client, client_action, {'Bucket': args.accessPointArn, 'Key': args.key}, 1000)

    print("Using the Requests package to send a request to the URL.")
    response = None
    if args.action == 'get':
        response = requests.get(url)
    elif args.action == 'put':
        print("Putting data to the URL.")
        try:
            with open(args.key, 'r') as object_file:
                object_text = object_file.read()
            response = requests.put(url, data=object_text)
        except FileNotFoundError:
            print(f"Couldn't find {args.key}. For a PUT operation, the key must be the "
                  f"name of a file that exists on your computer.")

    if response is not None:
        print("Got response:")
        print(f"Status: {response.status_code}")
        print(response.text)

    print('-'*88)


if __name__ == '__main__':
    usage_demo()
```

------