2009-03-27 14 views

Antwort

32

Ja ist es. Zunächst müssen Sie in Ihrem S3-Konto einen Bucket erstellen, der alles in Kleinbuchstaben enthält, global eindeutig ist und DNS-kompatibel ist. So habe ich zum Beispiel einen Bucket namens 'media.torusknot.com' erstellt.

Um alles gut aussehen zu lassen, müssen Sie einen DNS-CNAME-Eintrag erstellen, um eine Unterdomäne Ihrer Site diesem S3-Bucket zuzuordnen. Auf diese Weise können Sie über "http://media.example.com/somefile.mp3" auf Ihre Dateien zugreifen, die Sie in diesen S3-Bucket hochladen. Sie müssen nur die ACLs für die Dateien & im Bucket festlegen, um sicherzustellen, dass der öffentliche Zugriff zulässig ist.

Wenn Sie schließlich Videodateien über einen Flash-Player von S3 in eine andere Domäne streamen möchten, müssen Sie Flash außerdem mitteilen, dass der Inhalt aus einer anderen Domäne abgerufen werden kann. Erstellen Sie eine Datei namens ‚crossdomain.xml‘ in den Eimer, mit diesen Inhalten:

<cross-domain-policy> 
<site-control permitted-cross-domain-policies="all"/> 
</cross> 

, dass die Medien ermöglicht von überall zugegriffen werden kann - man kann genauer sein, wenn Sie wollen, aber das ist der einfachste Ansatz.

Verwandte Ressourcen:

+7

Bedenken Sie jedoch, dass die Medien nicht wirklich gestreamt werden (wie bei Red5 oder Flash Media Server), sondern progressiv heruntergeladen werden - somit landen die Mediendateien als leicht identifizierbare Dateien im Cache des Browsers. Abhängig von der Lizenz kann dies ein Problem sein mit urheberrechtlich geschützten Inhalten von Dritten – Argelbargel

+0

Achten Sie auch auf den Verkehr, denn wenn die crossdomain-Datei nicht gegen andere Websites mit der MP3-Datei schützt, glaube ich, dass jeder diese MP3 in ihrem Flash verwenden könnte Player = Sie zahlen die Bandbreite. Aber ich habe es nicht getestet. – BerggreenDK

+0

@BerggreenDK Späte Antwort hier, aber Sie können das lösen, indem Sie den Bucket privat machen und Clients geben, die authentifizierte signierte URLs über eine API sind. Diese URLs sind nur für eine vordefinierte Zeitspanne gültig. Ich würde dies unabhängig davon tun, wie man eine öffentliche ACL auf S3 im Allgemeinen nicht etwas setzt, das Sie wollen, außer unter bestimmten Umständen wie das Hosten einer Website auf S3 (siehe die jüngsten Datenlecks mit schlechten Bucket-Richtlinien auf S3, die, einfach, eine Frage von schlechten Sicherheitsrichtlinien und Mangel an Wissen). – polythene

-2

Ich würde Flash Media Server-Lösungen wie Wowza kombiniert mit Flowplayer für Flash-Widget wird dringend empfohlen.

+0

keine Notwendigkeit für ein Flash-Widget, beziehen Sie sich auf die Lösung von @ caveman für die Lösung von Amazon S3 und Cloudfront unterstützt – yacc

24

Um die Antwort auf diese Frage zu aktualisieren, können Sie Amazon Cloudfront auf Ihrem S3-Bucket verwenden (wie von Rudolf erwähnt), wenn Sie tatsächlich zu Clients STREAMEN möchten. Erstellen Sie in Cloudfront eine Streaming-Verteilung, die auf Ihren S3-Bucket verweist.

Dies wird über RTMP (gut für Web-und Android-Geräte) streamen. Sie können JW Player oder einen ähnlichen Player verwenden, um die gestreamten Dateien abzuspielen.

Cloudfront Streaming verwendet Adobe Flash Media Server 3.5.

Es gibt auch die Möglichkeit, sichere Inhalte mit signierten URLs abzuspielen.

+2

danke, das ist die Informationen, die ich verzweifelt gesucht! Du bist ein Mann! – r3wt

+2

Dies sollte grün markiert sein! –

+0

Während dies zu bestätigen scheint, dass wir den richtigen Weg gehen, finde ich keine freien Software-Bibliotheken/Player. Gibt es welche, und wie sollte ich suchen? Könntest du ein paar Beispiele mitbringen? Beim Blick auf bestehende "RMTP-Bibliotheken" finde ich natürlich 'JWplayer' und' Wowza', sowie 'Adobe Flash' und' Gnash'. Gibt es keinen populären und kostenlosen HTML-basierten Player, der dies unterstützt? Habe ich etwas verpasst ? * (Ich beabsichtige, eine PHP-Streaming-Anwendung zu entwickeln. Auf mittlere/lange Sicht sollte es kommerziell werden, was einer der Gründe dafür ist, dass wir Dateien auf AWS S3 hosten) * – Balmipour