Objekte mit vorsignierten Objekten hochladen URLs - Amazon Simple Storage Service

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.

Objekte mit vorsignierten Objekten hochladen URLs

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

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.

  1. Installieren Sie das AWS Toolkit for Visual Studio mithilfe der folgenden Anweisungen unter Installation und Einrichtung des Toolkit for Visual Studio im AWS Toolkit for Visual Studio Benutzerhandbuch.

  2. Connect Sie AWS mithilfe der folgenden Schritte eine Verbindung zu her: Herstellen einer Verbindung zu AWS im AWS Toolkit for Visual Studio Benutzerhandbuch.

  3. 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.

  4. Wählen Sie Vorsignierte URL erstellen aus.

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

  6. 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.

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

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

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

  10. 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"

Sie können eine vorsignierte 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.

Python

Das folgende Python-Skript generiert eine PUT vorsignierte URL 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.", ) 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, "put_object", {"Bucket": args.bucket, "Key": args.key}, 1000 ) print(f"Generated PUT presigned URL: {url}") if __name__ == "__main__": main()
  2. Um eine PUT vorsignierte URL für das Hochladen einer Datei zu generieren, führen Sie das folgende Skript mit Ihrem Bucket-Namen und dem gewünschten Objektpfad aus.

    Der folgende Befehl verwendet Beispielwerte. Ersetzen Sie user input placeholders durch Ihre Informationen.

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

    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
  3. Sie können die Datei jetzt mithilfe der generierten vorsignierten URL mit curl hochladen:

    curl -X PUT -T "path/to/your/local/file" "generated-presigned-url"

Weitere Beispiele für die Verwendung von AWS SDKs zum Generieren einer vorsignierten URL für das Hochladen eines Objekts finden Sie unter Erstellen einer vorsignierten URL für Amazon S3 mithilfe eines SDK. AWS