Suche…


Bemerkungen

Zusammenfassung aus der Dokumentation

Von http://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html

Der Amazon Simple Storage Service ist ein Speicher für das Internet. Es soll den Web-Scale Computing für Entwickler einfacher machen.

Amazon S3 verfügt über eine einfache Webservice-Benutzeroberfläche, mit der Sie jederzeit und von überall im Internet beliebige Datenmengen speichern und abrufen können. Jeder Entwickler hat Zugriff auf dieselbe hoch skalierbare, zuverlässige, schnelle und kostengünstige Datenspeicherinfrastruktur, die Amazon für das eigene globale Netzwerk von Websites nutzt. Der Service zielt darauf ab, die Skaleneffekte zu maximieren und diese an die Entwickler weiterzugeben.

Sprach- und Skriptunterstützung

S3 ist keine Entwicklungssprache als solche, sondern eine Cloud-Plattform, die Web-Service-Anfragen unterstützt. Es gibt eine Auswahl an Tools und SDKs , die von Amazon veröffentlicht werden. Die Sprach-SDKs bieten einen transparenten Zugriff auf S3, indem Aufgaben wie Webdienstanforderungen, Authentifizierung, Sitzungsverwaltung, Tokenerneuerung usw. bearbeitet werden . Außerdem gibt es Befehlszeilenschnittstellen für bash / windows / ios und Powershell .

Die S3-API

Die S3-Webservice-API wurde von konkurrierenden Anbietern unterstützt . In diesem Thema wird die API derzeit nicht direkt behandelt. Daher sind die hier aufgeführten Beispiele nicht hilfreich für die Erstellung von Anwendungen, die eine Verbindung zu konkurrierenden Systemen herstellen, die die S3-API nutzen.

Versionen

Zum 28. März 2017 hat die AWS-CLI 174 Versionen, die in den CLI- Versionshinweisen sauber dokumentiert sind. Amazon S3 hat 66 Versionen, von denen einige die Hinzufügung einer neuen Region ankündigen und andere Funktionen hinzufügen sollen. Diese sind in den S3-Versionshinweisen dokumentiert.

Die Beispiele

In Bezug auf die bisher in diesem Abschnitt "Erste Schritte" gezeigten Beispiele ist Amazon S3 für Entwickler in den folgenden Anwendungsfällen hilfreich:

  • Speichern oder sichern Sie Dateien in einem leistungsstarken, dauerhaften System, und entlasten Sie diese Aufgabe von Nicht-Cloud-Architekturen: Linux- und Windows-Dateisystemen. Es ist teuer, die Haltbarkeits- und Leistungsniveaus von S3 mithilfe von Premise-Servern oder EC2-Instanzen neu zu erstellen.
  • Wenn die Netzwerkbandbreite ein Problem ist, zum Beispiel in Fällen, in denen mehrere Benutzer gleichzeitig große Dateien herunterladen müssen, kann das Verschieben von Daten nach S3 als Möglichkeit für eine Anwendung zum Reduzieren von Bandbreitenmangel in ein Datencenter oder einen lokalen Server verwendet werden . Auf diese Weise können Sie ein großes Code-Repository, Images für virtuelle Maschinen, Videos oder Software-Installer verteilen. Benutzer-Upload-Zeiten und Benutzer-Download-Zeiten können verbessert werden. [Für zusätzliche Leistung in sehr umfangreichen Szenarien für Benutzer kann ein Content Delivery-System wie Cloudfront verwendet werden, um Dateien näher an den Benutzer zu cachen.]
  • Ihre Anwendung muss eine große Datei erstellen oder verwenden, und Sie benötigen eine Möglichkeit, den Benutzern den Zugriff auf sie zu ermöglichen oder sie zu hinterlegen.
  • Ihre Anwendungsverteilung ist sehr umfangreich und Sie müssen sie mit Benutzern teilen.
  • Sie stellen eine Continuous Delivery-Pipeline zusammen und hosten beispielsweise Teile Ihrer Website bei Amazon S3.

An diesem Punkt zeigen die Beispiele nicht, wie Sie Folgendes tun:

  • Die Beispiele sind zwar schneller und übersichtlicher als das Eingeben von aws s3 help, do not mention some of the commands covered in help, such as aws s3 website`.
  • Wie kann ich den Benutzerzugriff freigeben oder einschränken? Ohne explizite Einschränkung funktionieren die Beispiele nur für Benutzer, die dasselbe AWS-Konto verwenden.
  • So sichern Sie Daten durch Verschlüsselung. Beachten Sie, dass AWS in S3 eine höhere Sicherheitsstufe als in EC2 gespeicherte Daten aufweist. AWS Security Best Practices, August 2016, S. 27. 27

Sicherheit

AWS empfiehlt, S3 als sichere Plattform anzusehen:

Wenn Sie keine strengeren Geschäfts- oder Compliance-Anforderungen haben, müssen Sie keine zusätzlichen Schutzschichten über die sichere, globale AWS-Infrastruktur hinaus einführen. ebenda S.2

AWS empfiehlt im Sicherheitshandbuch die Verwendung der AWS-Authentifizierung als für S3 geeignet. ebenda p. 27

Zusätzlich bietet S3 serverseitige Verschlüsselung oder clientseitige Verschlüsselung. Die clientseitige Verschlüsselung wird transparent vom AWS Java SDK bereitgestellt. Schlüssel müssen nicht in AWS gespeichert werden. ebenda p. 28

Versionen

Versionsname Beschreibung Anmerkungen Veröffentlichungsdatum
Amazon S3 am 2016-12-13 Fügt die Region London hinzu Anmerkungen 2016-12-13

Installation von AWS CLI für den Zugriff auf S3

Installieren von aws cli in der Ubuntu / Debian-Instanz

sudo apt-get install -y python-dev python-pip
sudo pip install awscli
aws --version
aws configure

Installieren von aws cli mit Python

Mit pip können Sie aws cli in Windows, OS X und Linux installieren

sudo pip install awscli

Konfigurieren der AWS-Befehlszeilenschnittstelle

In diesem Abschnitt wird erläutert, wie Sie Einstellungen konfigurieren, die von der AWS Command Line Interface bei der Interaktion mit AWS verwendet werden, z.

$ aws configure
AWS Access Key ID [None]: <Your access key >
AWS Secret Access Key [None]: <Your secret key>
Default region name [None]: us-west-2
Default output format [None]: json

Rufen Sie den Zugriffsschlüssel und den geheimen Schlüssel von der Kontoseite in AWS ab

Eimer erstellen

Verwenden Sie den Befehl aws s3 mb, um einen neuen Bucket zu erstellen. Bucket-Namen müssen eindeutig sein und sollten DNS-kompatibel sein. Bucket-Namen können Kleinbuchstaben, Zahlen, Bindestriche und Punkte enthalten

aws s3 mb s3://bucket-name

Eimer entfernen

Verwenden Sie zum Entfernen eines Buckets den Befehl aws s3 rb. Standardmäßig sollte der Bucket leer sein.

aws s3 rb s3://bucket-name

Um einen nicht leeren Bucket zu entfernen, müssen Sie die Option --force angeben.

aws s3 rb s3://bucket-name --force

Buckets auflisten

Verwenden Sie zum Auflisten aller Buckets oder ihres Inhalts den Befehl aws s3 ls

aws s3 ls
aws s3 ls s3://bucket-name

Der folgende Befehl listet die Objekte in Bucket-Name / Pfad auf

aws s3 ls s3://bucket-name/path

Dateien zwischen dem lokalen Dateisystem und S3 synchronisieren

aws s3 sync . s3://my-bucket/path 

Alle Dateien im aktuellen Verzeichnis werden in S3 hochgeladen. Um die Dateien von S3 in das aktuelle Verzeichnis herunterzuladen, führen Sie sie aus

aws s3 sync s3://my-bucket/path .

AWS CLI S3-Befehlsliste

Liste der häufig verwendeten S3 AWS CLI-Befehle

Eimer erstellen

aws s3 mb s3://bucket-name

Eimer entfernen

aws s3 rb s3://bucket-name

Eimer auflisten

aws s3 ls

Den Inhalt im Eimer auflisten

aws s3 ls s3://bucket-name

Listeneimer mit einem Pfad

aws s3 ls s3://bucket-name/path

Datei kopieren

aws s3 cp file.txt s3://my-bucket/ 

Dateien synchronisieren

aws s3 sync . s3://my-bucket/path

Lokale Datei löschen

rm ./MyFile1.txt

Versuchen Sie die Synchronisierung ohne die Option --delete - nichts passiert

aws s3 sync . s3://my-bucket/path

Mit Löschen synchronisieren - Objekt wird aus dem Bucket gelöscht

aws s3 sync . s3://my-bucket/path --delete

Objekt aus dem Bucket löschen

aws s3 rm s3://my-bucket/path/MySubdirectory/MyFile3.txt

Mit Löschen synchronisieren - Lokale Datei wird gelöscht

aws s3 sync s3://my-bucket/path . --delete

Synchronisierung mit der Speicherklasse für seltenen Zugriff

aws s3 sync . s3://my-bucket/path --storage-class STANDARD_IA

Kopieren Sie MyFile.txt im aktuellen Verzeichnis nach s3: // my-bucket / path

aws s3 cp MyFile.txt s3://my-bucket/path/

Verschieben Sie alle JPG-Dateien in s3: // Mein Bucket / Pfad nach ./MyDirectory

aws s3 mv s3://my-bucket/path ./MyDirectory --exclude '*' --include '*.jpg' --recursive

Listen Sie den Inhalt von my-bucket auf

aws s3 ls s3://my-bucket

Listen Sie den Inhalt des Pfads in my-bucket auf

aws s3 ls s3://my-bucket/path

Löschen Sie s3: //my-bucket/path/MyFile.txt

aws s3 rm s3://my-bucket/path/MyFile.txt

Löschen Sie s3: // mein Bucket / Pfad und seinen gesamten Inhalt

aws s3 rm s3://my-bucket/path --recursive

Hello World Beispiel mit Java

In diesem Beispiel wird versucht, einen Bucket namens "Hallo-Welt" zu erstellen. Da die Hallo-Welt des Buckets bereits von einer anderen Person im globalen Namespace von S3 erstellt wurde, wird die folgende Ausnahme ausgelöst. Ändern Sie "Hallo-Welt" in etwas anderes, um die Ausnahme zu vermeiden, indem Sie einen eindeutig benannten Bucket erstellen. Der so erstellte neue Bucket kann mit der AWS-Konsole gelöscht werden

Ausnahme im Thread "main" com.amazonaws.services.s3.model.AmazonS3Exception: Der angeforderte Bucket-Name ist nicht verfügbar. Der Bucket-Namespace wird von allen Benutzern des Systems gemeinsam genutzt. Bitte wählen Sie einen anderen Namen und versuchen Sie es erneut. (Dienst: Amazon S3; Statuscode: 409; Fehlercode: BucketAlreadyExists; Anforderungs-ID: ...

           import com.amazonaws.services.s3.AmazonS3;
           import com.amazonaws.services.s3.AmazonS3ClientBuilder;
           import com.amazonaws.services.s3.model.CreateBucketRequest;
           import com.amazonaws.services.s3.model.Bucket;

            /** S3 "hello world" example. */
            public class S3Hello {

                    /** Name of hello-world bucket -- must be globally unique.  The
                     *  bucket namespace is shared by all users of the system.
                     */
                    static final String BUCKET_NAME = "hello-world";

                    /** Creates bucket
                     *  @param args Command line arguments
                     */
                    public static void main(final String[] args) {

                            AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();

                            CreateBucketRequest request
                                 = new CreateBucketRequest(BUCKET_NAME);

                            Bucket bucket = s3.createBucket(request);
                            System.out.println("S3 Hello World completed.");
                    }
            }

Dieses Beispiel erfordert die folgenden Abhängigkeiten:

Hallo Welt mit PowerShell

In diesem Beispiel wird ein Fehler erwartet, da der Bucket Hallo-Welt bereits vorhanden ist und S3 einen globalen Namespace verwendet.

    New-S3Bucket -BucketName "hello-world"

New-S3Bucket: Der angeforderte Bucket-Name ist nicht verfügbar. Der Bucket-Namespace wird von allen Benutzern des Systems gemeinsam genutzt. Bitte wählen Sie einen anderen Namen und versuchen Sie es erneut.

Wenn Sie hallo-world durch etwas anderes ersetzen, das einzigartig ist, wird der Bucket fehlerfrei erstellt, und Sie erhalten folgendes Ergebnis:

    CreationDate                                      BucketName
    ------------                                      ----------
    3/30/2017 11:43:03 PM                             hello-world-832jklsdJF

Dieses Beispiel erfordert die folgenden Abhängigkeiten:



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow