Quantcast
Channel: ebene7 » Zend_Cloud
Viewing all articles
Browse latest Browse all 2

Amazon S3 mit PHP-Stream Wrapper verwenden

$
0
0

In der letzten Woche habe ich ja bereits über die Komponente Zend_Cloud geschrieben und ungetestet behauptet, dass sie sicherlich leicht zu verwenden sei. Das Testen habe ich nun nachgeholt und habe erwartungsgemäß keine bösen Überraschungen erlebt.

Ganz im Gegenteil, sogar! Während meiner Arbeit mit Amazon S3 kam mir der Gedanke, dass es doch sehr bequem wäre, wenn es einen Stream Wrapper gäbe und man die PHP-eigenen File-Funktionen zum Lesen und Schreiben verwenden könnte.

Nach kurzem Suchen habe ich, wen wird es überraschen, eine noch einfachere Lösung gefunden. Zuerst aber mein Versuch mit Zend_Cloud Dateien nach Amazon S3 zu kopieren.

Zend_Cloud

Einfach die Storage-Factory mit den nötigen Zugangsdaten füttern und schon kann es losgehen.

<?php
$adapter      = 'Zend_Cloud_StorageService_Adapter_S3';
$amazonKey    = '<amazon-key>';
$amazonSecret = '<amazon-secret>';
$bucketName   = 'mein-bucket';

$storage = Zend_Cloud_StorageService_Factory::getAdapter(array(
  Zend_Cloud_StorageService_Factory::STORAGE_ADAPTER_KEY => $adapter,
  Zend_Cloud_StorageService_Adapter_S3::AWS_ACCESS_KEY   => $amazonKey,
  Zend_Cloud_StorageService_Adapter_S3::AWS_SECRET_KEY   => $amazonSecret,
  Zend_Cloud_StorageService_Adapter_S3::BUCKET_NAME      => $bucketName,
));

Die Factory liefert uns ein gebrauchsfertiges Objekt zurück, mit dem wir nun Dateien erzeugen können.

<?php
$filename = 'example.txt';
$data = file_get_contents($filename);
$storage->storeItem($filename, $data);

Ebenso einfach wie das Erstellen ist auch das Lesen…

<?php
echo $storage->fetchItem($filename));

…oder Löschen einer Datei.

<?php
$storage->deleteItem($filename);

Zend_Service

Nun hatte ich ja versprochen, dass es noch einfacher geht. Die Komponente Zend_Service bietet ebenfalls eine Schnittstelle für Amazon S3 an und auch gleich eine Methode, diese als Stream Wrapper zu registrieren.

Zuerst muss natürlich das Objekt mit den Zugangsdaten erzeugt werden.

<?php
$amazonKey    = '<amazon-key>';
$amazonSecret = '<amazon-secret>';

$s3 = new Zend_Service_Amazon_S3($amazonKey, $amazonSecret);
$s3->registerStreamWrapper('s3');

Ab jetzt ist der Stream Wrapper mit dem Schema ‘s3://’ im System bekannt und mit den gewohnten File-Funktionen verwendet werden. Dadurch bleibt der Code schlank und man muss sich nicht für jede Speicherart eine andere Schnittstelle merken.

Nicht zuletzt können wir unsere Dateien nun organisieren wie und wo wir wollen ohne dabei wieder den Code umschreiben zu müssen.

<?php
file_put_contents("s3://<bucket-name>/halloWelt", "Hallo Welt"); // einfach schreiben
echo file_get_contents("s3://<bucket-name>/halloWelt"); // und wieder lesen

Nebenbei bemerkt ist es auch recht einfach, sich einen eigenen Stream Wrapper für spezielle Anwendungfälle selber zu schreiben, aber dazu vielleicht mehr in einem weiteren Artikel.


Viewing all articles
Browse latest Browse all 2

Latest Images

Pangarap Quotes

Pangarap Quotes

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Trending Articles


Ang Nobela sa “From Darna to ZsaZsa Zaturnnah: Desire and Fantasy, Essays on...


Lola Bunny para colorear


Dino Rey para colorear


Girasoles para colorear


Dibujos de animales para imprimir


Renos para colorear


Dromedario para colorear


Love Quotes Tagalog


Mga Patama Quotes at Pamatay Banat Quotes


RE: Mutton Pies (mely)


Gwapo Quotes : Babaero Quotes


Kung Fu Panda para colorear


Libros para colorear


Mandalas de flores para colorear


Dibujos para colorear de perros


Toro para colorear


mayabang Quotes, Torpe Quotes, tanga Quotes


Long Distance Relationship Tagalog Love Quotes


Love Quotes Tagalog


Mga Tala sa “Unang Siglo ng Nobela sa Filipinas” (2009) ni Virgilio S. Almario





Latest Images

Pangarap Quotes

Pangarap Quotes

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC