Objekte hochladen - 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 hochladen

Wenn Sie eine Datei Amazon S3 hochladen, wird sie als S3-Objekt gespeichert. Objekte umfassen die Datei und die Metadaten, die das Objekt beschreiben. Ein Bucket kann eine unbegrenzte Anzahl von Objekten aufnehmen. Bevor Sie Dateien zu Amazon S3 hochladen können, benötigen Sie die Schreibberechtigungen für den Bucket. Weitere Informationen zu den Zugriffsberechtigungen finden Sie unter Identity and Access Management in Amazon S3.

Sie können beliebige Dateitypen – Bilder, Backups, Daten, Filme usw. – in einen S3-Bucket hochladen. Die maximale Größe einer Datei, die Sie über die Amazon-S3-Konsole hochladen können, ist 160 GB. Um eine Datei mit mehr als 160 GB hochzuladen, verwenden Sie die AWS Command Line Interface (AWS CLI), AWS SDKs oder die Amazon S3-REST-API.

Wenn Sie ein Objekt mit einem Schlüsselnamen hochladen, der bereits in einem Bucket mit aktiviertem Versioning vorhanden ist, erstellt Amazon S3 eine weitere Version des Objekts, statt das vorhandene Objekt zu ersetzen. Weitere Informationen über Versioning finden Sie unter Verwenden der S3-Konsole.

Abhängig von der Größe der Daten, die Sie hochladen, bietet Amazon S3 die folgenden Optionen:

  • Hochladen eines Objekts in einer einzigen Operation mithilfe der - AWS SDKs , der REST-API oder AWS CLI – Mit einer einzigen PUT Operation können Sie ein einzelnes Objekt mit einer Größe von bis zu 5 GB hochladen.

  • Hochladen eines einzelnen Objekts mit der Amazon-S3-Konsole Mit der Amazon-S3-Konsole können Sie ein einzelnes Objekt mit einer Größe von bis zu 160 GB hochladen.

  • Hochladen eines Objekts in Teilen mithilfe der - AWS SDKs , der REST-API oder AWS CLI Mit der API-Operation für mehrteilige Uploads können Sie ein einzelnes großes Objekt mit einer Größe von bis zu 5 TB hochladen.

    Die API-Operation für mehrteilige Uploads ist darauf ausgelegt, die Upload-Leistung für größere Objekte zu verbessern. Sie können ein Objekt in Teilen hochladen. Diese Objektteile können unabhängig, in jeder beliebigen Reihenfolge und parallel hochgeladen werden. Sie können einen mehrteiligen Upload verwenden, um Objekte mit einer Größe von 5 MB bis 5 TB hochzuladen. Weitere Informationen finden Sie unter Hochladen und Kopieren von Objekten mit mehrteiligen Uploads.

Wenn Sie ein Objekt hochladen, wird das Objekt standardmäßig automatisch mit serverseitiger Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) verschlüsselt. Wenn Sie es herunterladen, wird das Objekt entschlüsselt. Weitere Informationen finden Sie unter Einstellen des Verhaltens der serverseitigen Verschlüsselung für Amazon S3-Buckets und Datenschutz durch Verschlüsselung.

Wenn Sie beim Hochladen eines Objekts einen anderen Standardverschlüsselungstyp verwenden möchten, können Sie in Ihren S3-PUT-Anforderungen auch die serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS)-Schlüsseln (SSE-KMS) angeben oder die Standardverschlüsselungskonfiguration im Ziel-Bucket so festlegen, dass SSE-KMS zum Verschlüsseln Ihrer Daten verwendet wird. Weitere Informationen zu SSE-KMS finden Sie unter Angeben der serverseitigen Verschlüsselung mit AWS KMS -(SSE-KMS). Wenn Sie einen KMS-Schlüssel verwenden möchten, der sich im Besitz eines anderen Kontos befindet, müssen Sie über die Berechtigung zum Verwenden des Schlüssels verfügen. Weitere Informationen zu kontoübergreifenden Berechtigungen für KMS-Schlüssel finden Sie unter Erstellen von KMS-Schlüsseln, die von anderen Konten verwendet werden können im Entwicklerhandbuch zu AWS Key Management Service .

Wenn in Amazon S3 ein Fehler aufgrund einer Zugriffsverweigerung (403 Forbidden) auftritt, finden Sie weitere Informationen zu den häufigsten Ursachen unter Beheben von Fehlern aufgrund einer Zugriffsverweigerung (403 Forbidden) in Amazon S3 .

In diesem Verfahren wird erläutert, wie Sie Objekte und Ordner mithilfe der Konsole in einen Amazon-S3-Bucket hochladen.

Wenn Sie ein Objekt hochladen, ist der Name des Objektschlüssels der Dateiname und etwaige optionale Präfixe. In der Amazon-S3-Konsole können Sie Ordner erstellen, um Ihre Objekte zu organisieren. In Amazon S3 werden Ordner als Präfixe dargestellt, die im Namen des Objektschlüssels angezeigt werden. Wenn Sie ein einzelnes Objekt in einen Ordner in der Amazon-S3-Konsole hochladen, wird der Ordnername im Namen des Objektschlüssels aufgenommen.

Wenn Sie beispielsweise ein Objekt mit dem Namen sample1.jpg in einen Ordner namens backup hochladen, lautet der Schlüsselname backup/sample1.jpg. Allerdings wird das Objekt in der Konsole als sample1.jpg im Ordner backup angezeigt. Weitere Informationen zu Schlüsselnamen finden Sie unter Arbeiten mit Objekt-Metadaten.

Anmerkung

Wenn Sie ein Objekt umbenennen oder eine der Eigenschaften in der Amazon-S3-Konsole ändern, z. B. Speicherklasse, Verschlüsselung oder Metadaten, wird ein neues Objekt erstellt, das das alte ersetzt. Wenn S3-Versioning aktiviert ist, wird eine neue Version des Objekts erstellt, und das vorhandene Objekt wird zu einer älteren Version. Die Rolle, die die Eigenschaft ändert, wird auch Besitzer des neuen Objekts (oder der neuen Objektversion).

Wenn Sie einen Ordner hochladen, lädt Amazon S3 alle Dateien und Unterordner aus dem angegebenen Ordner in Ihren Bucket hoch. Es wird dann ein Objektschlüsselname zugewiesen, der eine Kombination aus dem hochgeladenen Dateinamen und dem Ordnernamen ist. Wenn Sie beispielweise einen Ordner mit dem Namen /images hochladen, der zwei Dateien, sample1.jpg und sample2.jpg, enthält, lädt Amazon S3 die Dateien hoch und weist ihnen die jeweiligen Schlüsselnamen images/sample1.jpg und images/sample2.jpg zu. Der Schlüsselname enthält den Ordnernamen als Präfix. Die Amazon-S3-Konsole zeigt nur den Teil des Schlüsselnamens nach dem letzten / an. Beispielsweise werden in einem images-Ordner die Objekte images/sample1.jpg und images/sample2.jpg als sample1.jpg und sample2.jpg angezeigt.

So laden Sie Ordner und Dateien in einen S3-Bucket hoch
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie im linken Navigationsbereich Buckets aus.

  3. Wählen Sie in der Liste Buckets den Namen des Buckets aus, in den Ihre Ordner oder Dateien hochgeladen werden sollen.

  4. Klicken Sie auf Upload.

  5. Führen Sie im Fenster Upload einen der folgenden Schritte aus:

    • Ziehen Sie Dateien und Ordner in das Fenster Upload (Hochladen) und legen Sie sie dort ab.

    • Wählen Sie Datei hinzufügen oder Ordner hinzufügen aus, wählen Sie die hochzuladenden Dateien oder Ordner und anschließend Öffnen aus.

  6. Um die Versioning zu aktivieren, wählen Sie unter Destination (Ziel) die Option Enable Bucket Versioning (Bucket-Versioning aktivieren) aus.

  7. Um die aufgelisteten Dateien und Ordner hochzuladen, ohne zusätzliche Upload-Optionen zu konfigurieren, wählen Sie unten auf der Seite Upload aus.

    Amazon S3 lädt Ihre Objekte und Ordner hoch. Wenn der Upload abgeschlossen ist, wird auf der Seite Upload: Status eine Erfolgsmeldung angezeigt.

So konfigurieren Sie zusätzliche Objekteigenschaften
  1. Um Zugriffssteuerungslisten-Berechtigungen zu ändern, wählen Sie Permissions (Berechtigungen) aus.

  2. Bearbeiten Sie die Berechtigungen unter Access control list (ACL) (Zugriffssteuerungsliste).

    Weitere Informationen zu den Zugriffsberechtigungen für Objekte finden Sie unter Festlegen von ACL-Berechtigungen für ein Objekt mit der S3-Konsole. Sie können der Öffentlichkeit Lesezugriff auf Ihre Objekte erteilen, und zwar für alle Dateien, die Sie hochladen. Wir empfehlen allerdings, die Standardeinstellung für den öffentlichen Lesezugriff nicht zu ändern. Die Erteilung von öffentlichem Lesezugriff ist nur für wenige Anwendungsfälle sinnvoll, beispielsweise, wenn Buckets für Websites verwendet werden. Nachdem Sie das Objekt hochgeladen haben, können Sie jederzeit Änderungen an den Objektberechtigungen vornehmen.

  3. Um andere zusätzliche Eigenschaften zu konfigurieren, wählen Sie Properties (Eigenschaften) aus.

  4. Wählen Sie im Abschnitt Speicherklasse die Speicherklasse für die Dateien aus, die Sie hochladen.

    Weitere Informationen über Speicherklassen finden Sie unter Verwenden von Amazon-S3-Speicherklassen.

  5. Um die Verschlüsselungseinstellungen für Ihre Objekte zu aktualisieren, gehen Sie unter Server-side encryption settings (Serverseitige Verschlüsselungseinstellungen) wie folgt vor.

    1. Klicken Sie auf Specify an encryption key (Verschlüsselungsschlüssel angeben).

    2. Wählen Sie unter Verschlüsselungseinstellungen die Option Verwenden von Bucket-Einstellungen für die Standardverschlüsselung oder Überschreiben der Bucket-Einstellungen für die Standardverschlüsselung aus.

    3. Wenn Sie Überschreiben der Bucket-Einstellungen für die Standardverschlüsselung ausgewählt haben, müssen Sie die folgenden Verschlüsselungseinstellungen konfigurieren.

      • Um die hochgeladenen Dateien mit Schlüsseln zu verschlüsseln, die von Amazon S3 verwaltet werden, wählen Sie Von Amazon S3 verwalteter Schlüssel (SSE-S3) aus.

        Weitere Informationen finden Sie unter Verwenden serverseitiger Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3).

      • Um die hochgeladenen Dateien mit Schlüsseln zu verschlüsseln, die in AWS Key Management Service (AWS KMS) gespeichert sind, wählen Sie AWS Key Management Service Schlüssel (SSE-KMS). Wählen Sie dann eine der folgenden Optionen für AWS KMS -Schlüssel aus:

        • Wenn Sie aus einer Liste verfügbarer KMS-Schlüssel auswählen möchten, wählen Sie Aus Ihren AWS KMS keys wählen und dann den KMS-Schlüssel in der Liste der verfügbaren Schlüssel aus.

          Sowohl die Von AWS verwalteter Schlüssel (aws/s3) als auch Ihre vom Kunden verwalteten Schlüssel werden in dieser Liste angezeigt. Weitere Informationen über vom Kunden verwaltete Schlüssel finden Sie unter Kundenschlüssel und AWS -Schlüssel im Entwicklerhandbuch zu AWS Key Management Service .

        • Um den KMS-Schlüssel-ARN einzugeben, wählen Sie AWS KMS key ARN eingeben und geben Sie dann Ihren KMS-Schlüssel-ARN in das angezeigte Feld ein.

        • Um einen neuen kundenverwalteten Schlüssel in der AWS KMS Konsole zu erstellen, wählen Sie KMS-Schlüssel erstellen aus.

          Weitere Informationen zum Erstellen eines AWS KMS key finden Sie unter Erstellen von Schlüsseln im AWS Key Management Service -Entwicklerhandbuch.

        Wichtig

        Sie können nur KMS-Schlüssel verwenden, die in derselben AWS-Region wie der Bucket verfügbar sind. Die Amazon-S3-Konsole führt nur die ersten 100 KMS-Schlüssel auf, die in derselben Region wie der Bucket verfügbar sind. Wenn Sie einen KMS-Schlüssel verwenden möchten, der nicht aufgeführt ist, müssen Sie den KMS-Schlüssel-ARN eingeben. Wenn Sie einen KMS-Schlüssel verwenden möchten, der sich im Besitz eines anderen Kontos befindet, müssen Sie über die Berechtigung zum Verwenden des Schlüssels verfügen und Sie müssen den KMS-Schlüssel-ARN eingeben.

        Amazon S3 unterstützt nur symmetrisch verschlüsselte KMS-Schlüssel und keine asymmetrischen KMS-Schlüssel. Weitere Informationen finden Sie unter Erkennen von symmetrischen und asymmetrischen KMS-Schlüsseln im Entwicklerhandbuch zu AWS Key Management Service .

  6. Wählen Sie On (Ein) aus, um zusätzliche Prüfsummen zu verwenden. Wählen Sie dann für Checksum function (Prüfsummenfunktion) die Funktion aus, die Sie verwenden möchten. Amazon S3 berechnet und speichert den Prüfsummenwert, nachdem es das gesamte Objekt erhalten hat. Sie können das Feld Precalculated value (Vorberechneter Wert) verwenden, um einen vorberechneten Wert anzugeben. In diesem Fall vergleicht Amazon S3 den von Ihnen angegebenen Wert mit dem eigenen berechneten Wert. Wenn die beiden Werte nicht übereinstimmen, generiert Amazon S3 einen Fehler.

    Mit zusätzlichen Prüfsummen können Sie den Prüfsummenalgorithmus angeben, den Sie zur Überprüfung Ihrer Daten verwenden möchten. Weitere Informationen zu zusätzlichen Prüfsummen finden Sie unter Überprüfung der Objektintegrität.

  7. Um allen hochgeladenen Objekten Markierungen hinzuzufügen, wählen Sie Add tag (Tag hinzufügen). Geben Sie einen Tag-Namen in das Feld Schlüssel ein. Geben Sie einen Wert für das Tag ein.

    Das Markieren von Objekten ermöglicht Ihnen, Speicher zu kategorisieren. Jeder Tag ist ein Schlüssel/Wert-Paar. Bei Schlüssel- und Tag-Werten wird die Groß-/Kleinschreibung berücksichtigt. Sie können über bis zu 10 Markierungen pro Objekt verfügen. Ein Tag-Schlüssel kann maximal 128 Unicode-Zeichen und die Tag-Werte bis zu 255 Unicode-Zeichen lang sein. Weitere Informationen über Objekt-Markierungen finden Sie unter Kategorisieren des Speichers mithilfe von Markierungen.

  8. Um Metadaten hinzuzufügen, wählen Sie Add metadata (Metadaten hinzufügen).

    1. Wählen Sie unter Typdie Option System defined (System definiert) oder User defined (Benutzerdefiniert) aus.

      Für systemdefinierte Metadaten können Sie gemeinsame HTTP-Header wie Content-Type und Content-Disposition auswählen. Eine Liste systemdefinierter Metadaten und Informationen dazu, ob Sie Werte hinzufügen können, finden Sie unter Systemdefinierte Objektmetadaten. Metadaten, die mit dem Präfix x-amz-meta- beginnen, werden als benutzerdefinierte Metadaten behandelt. Benutzerdefinierte-Metadaten werden mit dem Objekt gespeichert und beim Download mit ihm zurückgegeben. Sowohl die Schlüssel als auch deren Werte müssen US-ASCII-Standards entsprechen. Benutzerdefinierte Metadaten können bis zu 2 KB umfassen. Weitere Informationen zu systemdefinierten und benutzerdefinierten Metadaten finden Sie unter Arbeiten mit Objekt-Metadaten.

    2. Wählen Sie für Key einen Schlüssel aus.

    3. Geben Sie einen Wert für den Schlüssel ein.

  9. Um Ihre Objekte hochzuladen, wählen Sie Upload (Hochladen) aus.

    Amazon S3 lädt Ihr Objekt hoch. Wenn der Upload abgeschlossen ist, wird auf der Seite Upload: status eine Erfolgsmeldung angezeigt.

  10. Wählen Sie Exit (Beenden) aus.

Sie können die - AWS SDKs verwenden, um Objekte in Amazon S3 hochzuladen. Die SDKs stellen Wrapper-Bibliotheken für den einfachen Upload von Daten bereit. Weitere Informationen finden Sie in der Liste der unterstützten SDKs.

Dies sind Beispiele mit einigen ausgewählten SDKs:

.NET

Das folgende C#-Codebeispiel erstellt zwei Objekte mit zwei PutObjectRequest-Anforderungen:

  • Die erste PutObjectRequest-Anforderung speichert als Beispielobjektdaten eine Textzeichenfolge. Sie gibt zudem Bucket- und Objektschlüsselnamen an.

  • Die zweite PutObjectRequest-Anforderung lädt eine Datei durch Angabe des Dateinamens hoch. Diese Anforderung gibt außerdem den ContentType-Header und optionale Objektmetadaten (einen Titel) ein.

Anweisungen zum Erstellen und Testen eines funktionierenden Beispiels finden Sie unter Ausführen der .NET-Codebeispiele für Amazon S3.

using Amazon; using Amazon.S3; using Amazon.S3.Model; using System; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class UploadObjectTest { private const string bucketName = "*** bucket name ***"; // For simplicity the example creates two objects from the same file. // You specify key names for these objects. private const string keyName1 = "*** key name for first object created ***"; private const string keyName2 = "*** key name for second object created ***"; private const string filePath = @"*** file path ***"; private static readonly RegionEndpoint bucketRegion = RegionEndpoint.EUWest1; private static IAmazonS3 client; public static void Main() { client = new AmazonS3Client(bucketRegion); WritingAnObjectAsync().Wait(); } static async Task WritingAnObjectAsync() { try { // 1. Put object-specify only key name for the new object. var putRequest1 = new PutObjectRequest { BucketName = bucketName, Key = keyName1, ContentBody = "sample text" }; PutObjectResponse response1 = await client.PutObjectAsync(putRequest1); // 2. Put the object-set ContentType and add metadata. var putRequest2 = new PutObjectRequest { BucketName = bucketName, Key = keyName2, FilePath = filePath, ContentType = "text/plain" }; putRequest2.Metadata.Add("x-amz-meta-title", "someTitle"); PutObjectResponse response2 = await client.PutObjectAsync(putRequest2); } catch (AmazonS3Exception e) { Console.WriteLine( "Error encountered ***. 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); } } } }
Java

Das folgende Beispiel erstellt zwei Objekte. Das erste Objekt besitzt eine Textzeichenfolge als Daten, und das zweite Objekt ist eine Datei. Das Beispiel erstellt das erste Objekt durch Angabe des Bucket-Namen, des Objektschlüssels und von Textdaten direkt in einem Aufruf an AmazonS3Client.putObject(). Das Beispiel erstellt das zweite Objekt mittels einer PutObjectRequest, die den Bucket-Namen, den Objektschlüssel und den Dateipfad angibt. Die PutObjectRequest gibt zudem den ContentType-Header und Titelmetadaten an.

Anweisungen zum Erstellen und Testen eines funktionierenden Beispiels finden Sie unter Testen der Java-Codebeispiele für Amazon S3.

import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.ObjectMetadata; import com.amazonaws.services.s3.model.PutObjectRequest; import java.io.File; import java.io.IOException; public class UploadObject { public static void main(String[] args) throws IOException { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Bucket name ***"; String stringObjKeyName = "*** String object key name ***"; String fileObjKeyName = "*** File object key name ***"; String fileName = "*** Path to file to upload ***"; try { // This code expects that you have AWS credentials set up per: // https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withRegion(clientRegion) .build(); // Upload a text string as a new object. s3Client.putObject(bucketName, stringObjKeyName, "Uploaded String Object"); // Upload a file as a new object with ContentType and title specified. PutObjectRequest request = new PutObjectRequest(bucketName, fileObjKeyName, new File(fileName)); ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentType("plain/text"); metadata.addUserMetadata("title", "someTitle"); request.setMetadata(metadata); s3Client.putObject(request); } 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(); } } }
JavaScript

Im folgenden Beispiel wird eine vorhandene Datei in einen Amazon-S3-Bucket in einer spezifischen Region hochgeladen.

import { PutObjectCommand, S3Client } from "@aws-sdk/client-s3"; const client = new S3Client({}); export const main = async () => { const command = new PutObjectCommand({ Bucket: "test-bucket", Key: "hello-s3.txt", Body: "Hello S3!", }); try { const response = await client.send(command); console.log(response); } catch (err) { console.error(err); } };
PHP

Dieses Beispiel führt Sie durch die Verwendung von Klassen aus dem AWS SDK for PHP , um ein Objekt mit einer Größe von bis zu 5 GB hochzuladen. Für größere Dateien müssen Sie eine API-Operation für einen mehrteiligen Upload verwenden. Weitere Informationen finden Sie unter Hochladen und Kopieren von Objekten mit mehrteiligen Uploads.

Dieses Beispiel setzt voraus, dass Sie die Anweisungen für Verwenden von AWS SDK for PHP und Ausführen von PHP-Beispielen befolgen und das AWS SDK for PHP ordnungsgemäß installiert ist.

Beispiel – Erstellen eines Objekts in einem Amazon-S3-Bucket, indem Daten hochgeladen werden

Das folgende PHP- Beispiel erstellt ein Objekt in einem spezifizierten Bucket, indem die Daten mit der putObject()-Methode hochgeladen werden. Weitere Informationen zur Ausführung der PHP-Beispiele in dieser Anleitung finden Sie unter PHP-Beispiele ausführen.

require 'vendor/autoload.php'; use Aws\S3\Exception\S3Exception; use Aws\S3\S3Client; $bucket = '*** Your Bucket Name ***'; $keyname = '*** Your Object Key ***'; $s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-east-1' ]); try { // Upload data. $result = $s3->putObject([ 'Bucket' => $bucket, 'Key' => $keyname, 'Body' => 'Hello, world!', 'ACL' => 'public-read' ]); // Print the URL to the object. echo $result['ObjectURL'] . PHP_EOL; } catch (S3Exception $e) { echo $e->getMessage() . PHP_EOL; }
Ruby

– AWS SDK for Ruby Version 3 bietet zwei Möglichkeiten, ein Objekt in Amazon S3 hochzuladen. Bei der ersten wird ein verwalteter Datei-Uploader verwendet, mit dem sich Dateien beliebiger Größe einfacher von einer Festsplatte hochladen lassen. So verwenden Sie die Methode des verwalteten Datei-Uploaders:

  1. Erstellen Sie eine Instance der Aws::S3::Resource-Klasse.

  2. Verweisen Sie per Bucket-Name und Schlüssel auf das Ziel-Objekt. Objekte befinden sich in einem Bucket und haben eindeutige Schlüssel, die jedes Objekt identifizieren.

  3. Rufen Sie#upload_file für das Objekt auf.

require "aws-sdk-s3" # Wraps Amazon S3 object actions. class ObjectUploadFileWrapper attr_reader :object # @param object [Aws::S3::Object] An existing Amazon S3 object. def initialize(object) @object = object end # Uploads a file to an Amazon S3 object by using a managed uploader. # # @param file_path [String] The path to the file to upload. # @return [Boolean] True when the file is uploaded; otherwise false. def upload_file(file_path) @object.upload_file(file_path) true rescue Aws::Errors::ServiceError => e puts "Couldn't upload file #{file_path} to #{@object.key}. Here's why: #{e.message}" false end end # Example usage: def run_demo bucket_name = "doc-example-bucket" object_key = "my-uploaded-file" file_path = "object_upload_file.rb" wrapper = ObjectUploadFileWrapper.new(Aws::S3::Object.new(bucket_name, object_key)) return unless wrapper.upload_file(file_path) puts "File #{file_path} successfully uploaded to #{bucket_name}:#{object_key}." end run_demo if $PROGRAM_NAME == __FILE__

Die zweite Möglichkeit, mit der AWS SDK for Ruby – Version 3 ein Objekt hochladen kann, ist die #put Methode von Aws::S3::Object. Das ist praktisch, wenn das Objekt eine Zeichenfolge oder ein I/O-Objekt ist, bei dem es sich nicht um eine Datei auf einem Datenträger handelt. So verwenden Sie diese Methode:

  1. Erstellen Sie eine Instance der Aws::S3::Resource-Klasse.

  2. Verweisen Sie per Bucket-Name und Schlüssel auf das Ziel-Objekt.

  3. Rufen Sie #put auf und übergeben Sie die Zeichenfolge oder das I/O-Objekt.

require "aws-sdk-s3" # Wraps Amazon S3 object actions. class ObjectPutWrapper attr_reader :object # @param object [Aws::S3::Object] An existing Amazon S3 object. def initialize(object) @object = object end def put_object(source_file_path) File.open(source_file_path, "rb") do |file| @object.put(body: file) end true rescue Aws::Errors::ServiceError => e puts "Couldn't put #{source_file_path} to #{object.key}. Here's why: #{e.message}" false end end # Example usage: def run_demo bucket_name = "doc-example-bucket" object_key = "my-object-key" file_path = "my-local-file.txt" wrapper = ObjectPutWrapper.new(Aws::S3::Object.new(bucket_name, object_key)) success = wrapper.put_object(file_path) return unless success puts "Put file #{file_path} into #{object_key} in #{bucket_name}." end run_demo if $PROGRAM_NAME == __FILE__

Sie können REST-Anfragen senden, um ein Objekt hochzuladen. Sie können eine PUT-Anforderung senden, um Daten in einer einzigen Operation hochzuladen. Weitere Informationen finden Sie unter PUT Object.

Sie können eine PUT-Anforderung zum Hochladen eines Objekts von bis zu 5 GB in einem einzigen Vorgang senden. Weitere Informationen finden Sie im PutObject-Beispiel in der AWS CLI -Befehlsreferenz.