Seitenhierarchie
Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Bei Amazon S3 handelt es sich um Speicher für das Internet. Der Service ist darauf ausgelegt, Cloud Computing für Entwickler zu erleichtern.

 

Komponente einbinden 

/**
 * Einbinden der Komponente
 */
require_once 'alvine.infrastructure.amazon.aws.phar';

S3 Client erstellen

Mögliche Regionen und Endpunkte : http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region 

Die URI kann auch weggelassen werden , dann wird die default URL 'https://s3-eu-central-1.amazonaws.com/' verwendet.

/**
 * Client erstellen
 */
$client = new \Alvine\Infrastructure\Amazon\Aws\S3\Client(new \Alvine\Net\Resource\URI('https://s3-eu-central-1.amazonaws.com/'));

S3 Authenticating erstellen

Um mit dem Amazon Web Service kommunizieren zu können, muss ein IAM Konto existieren.
Beim erstellen eines solchen Kontos, werden einem der "accessKeyID" und der "secretAccessKey" zugewiesen.

/**
 * IAM Schlüssel erstellen
 */
$accessKeyID = 'xxxx';
$secretAccessKey = 'xxxx';
$accessKey = new \Alvine\Infrastructure\Amazon\Aws\Iam\Credentials\AccessKey($accessKeyID, $secretAccessKey);
 
/**
 * AWS Authenticating aus dem Schlüssel erstellen
 */
$authenticating = new \Alvine\Infrastructure\Amazon\Aws\Authenticating($accessKey);

S3 Client autorisieren

Damit der Client sich bei AWS autorisieren kann, muss das Authenticating an den Client gebunden werden.

/**
 * Zugangsdaten zuweisen
 */
$client->setCredential($authenticating);

Bucket erstellen

Die Daten werden bei S3 in so genannten Buckets abgelegt.
Der Bucket wird in der Region angelegt, die über die URL des Clients übergeben wurde.
Falls noch kein Buket vorhanden ist, kann so einer erstellt werden:

/**
 * Bucket erstellen
 */
$response = $client->putBucket('meinbucket');

Berechtigungen

Buckets werden immer 'private' angelegt.
Mit der Übergabe eines Permission Objekts kann die Berechtigung gesetzt werden.

/**
 * Bucket mit Berechtigungen erstellen
 */
$permission = new \Alvine\Infrastructure\Amazon\Aws\S3\Permission\CannedAcl('public-read');
$response = $client->putBucket('meinbucket', $permission);

Daten an S3 senden

In diesem Beispiel wird die Zeichenkette "Das ist ein Test" mit dem Namen "testfile" in dem Bucket "meinbucket" abgespeichert

/**
 * Daten abspeichern
 */
$bucketName = 'meinbucket';
$objektName = 'testfile';
$content = 'Das ist ein Test';
$response = $client->writeObject($bucketName, $objektName, $content);

Berechtigungen

Daten werden immer 'private' gespeichert. Nur der Besitzer bekommt "FULL_CONTROL". Niemand sonst hat die Zugriffsrechte.
Mit der Übergabe eines Permission Objekts kann die Berechtigung gesetzt werden.

http://docs.aws.amazon.com/de_de/AmazonS3/latest/dev/acl-overview.html

/**
 * Daten abspeichern
 */
$bucketName = 'meinbucket';
$objektName = 'testfile';
$content = 'Das ist ein Test';
$permission = new \Alvine\Infrastructure\Amazon\Aws\S3\Permission\CannedAcl('public-read');
$response = $client->writeObject($bucketName, $objektName, $content, $permission );

 

Daten von S3 laden

In diesem Beispiel wird das File "testfile" im Bucket "meinbucket" geladen.

$bucketName = 'meinbucket';
$objektName = 'testfile';
$content = $client->getObject($bucketName, $objektName);

Daten von S3 löschen

$bucketName = 'schukai';
$objektName = 'testfile';
$response= $client->deleteObject($bucketName,$objektName);

Bucket löschen

Ein Bucket kann wie folgt wieder gelöscht werden:

$bucketName = 'meinbucket';
$response= $client->deleteBucket($bucketName);

 

Bucket Inhalt anzeigen

Den Inhalt eines Bucket wird wie folgt ausgegeben

$bucketName = 'meinbucket';
$response= $client->getObjectList($bucketName);
MethodeBeschreibungParameterRückgabe-Werte
getObject($bucket, $name)Holt eine Datei aus einem BucketBucketname , Name der DateiZeichenkette der Daten
writeObject($bucket, $name, $body)Schreibt eine Datei in ein BucketBucketname , Name der Datei, Zeichenkette der Daten\Alvine\Net\Http\Response Objekt - HTTP/1.1 200 OK
deleteObject($bucket, $name)Löscht eine Datei in einem BucketBucketname , Name der Datei\Alvine\Net\Http\Response Objekt - HTTP/1.1 204 No Content
putBucket($bucket)Legt ein Bucket anBucketname \Alvine\Net\Http\Response Objekt - HTTP/1.1 200 OK
deleteBucket($bucket)Löscht ein BucketBucketname \Alvine\Net\Http\Response Objekt - HTTP/1.1 204 No Content
getObjectList($bucket)
Inhalt eines BucketBucketname \Alvine\Infrastructure\Amazon\Aws\S3\Response\ListBucketResponse

Referenzen

 

 

 

  • Keine Stichwörter
Schreiben Sie einen Kommentar...