Dateien auf Amazon S3 speichern

Amazon Simple Storage Service (Amazon S3) ist eine günstige möglichkeit Dateien in (fast) beliegiger Größe zu speichern. Im heutigen Script-Tip wollen wir zeigen wie einfach es ist Daten auf S3 zu speichern.

Um nicht die ganze Funktionlität selber zu implementieren werden wir in dem Beispiel auf das Gem „aws-s3“ zurückgreifen. Um das folgende Beispiel auszuprobieren, wird ein S3-Account für den Dienst benötigt. Der Account kann bei Amazon unter http://aws.amazon.com/s3/ eingerichtet werden.

Installation von aws-s3:

[bash]
gem install aws-s3
[/bash]

Danach kann man ganz einfach seine Dateien auf S3 übertragen.

[ruby]
require ‚rubygems‘
require ‚aws/s3‘
include AWS
include S3

AWS::S3::Base.establish_connection!(
:access_key_id => ‚DIE_AMAZON_ACCESS_KEY_ID‘,
:secret_access_key => ‚DER_AMAZON_SECRET_KEY‘
)

S3Object.store(‚der/objekt/pfad/auf/amazon/test.jpg‘, open(‚test.jpg‘),
‚der.bucket.name‘, :access => :public_read)
[/ruby]

Amazon S3 lässt ich auch für z.B. für Backups verwenden. Das wäre dann aber ein anderer Script-Tip… 🙂

Rails-Konf Video: Amazon S3/EC2 (Jonathan Weiss)

Über die Videopräsentation
Amazon bietet mit der Elastic Compute Cloud (Amazon EC2) und dem Simple Store Service (Amazon S3) zwei Web-Services an, die es anderen Entwicklern ermöglichen von der Amazon Plattform in Sachen on-demand Skalierung, Performance und Redundanz zu profitieren. Amazon S3 stellt dabei „storage for the internet“ dar, also unbegrenzter Speicherplatz in Amazons Datacentern, der über eine REST-API befüll- und aufrufbar ist. Amazon EC2 bietet Entwicklern die Möglichkeit on-demand beliebig viele Instanzen von virtuellen Maschinen per Web-Services zu starten und zu kontrollieren.

Dieser Vortrag soll demonstrieren, welchen Nutzen man von S3 und EC2 ziehen kann und wie einfach diese Web-Services in die eigene Rails Applikationen einzubinden sind. Nach einem Überblick über S3 und EC2 werden konkrete Einsatzszenarien besprochen und deren Implementation in Rails dargestellt. Die Szenarien reichen dabei von S3 als Backendspeicher bis zu On-Demand Application Server mit Capistrano und EC2.

Über den Autor
Jonathan Weiss ist technischer Projektleiter bei der Peritor Wissensmanagement GmbH. Dort ist er verantwortlich für die Entwicklung von web-basierten Wissensmanagement-Systemen und die Beratung im Bereich der Software-Entwicklung. Daneben ist er freiberuflicher Entwickler und arbeitet bereits seit über 2 Jahren mit Rails in der Praxis. Unter anderem ist er einer der Verantwortlichen von Meinprof.de, eine der ersten deutschen Rails-Seiten.