来自s3的Laravel 4流mp3没有CNAME桶

时间:2014-11-12 01:08:40

标签: php laravel laravel-4 amazon-s3 laravel-routing

根据其他答案,最好的方法是创建一个CNAME桶/记录并以这种方式流式传输。但是,由于版权问题,我无法执行此操作,因此必须通过我的应用程序对其进行流式传输(以便记录用户播放等许多内容)。

我的数据库my-bucket中的S3上有mp3。 mp3可在https://s3.amazonaws.com/my-bucket公开访问。

我有这个代码作为我的路由器:

Router.php
Route::get("/music/{id}.mp3", "Controller\Music@play");

Music.php
namespace Controller;

class Music extends \Controller\Base
{
    public function play($id)
    {
        $return = file_get_contents("https://s3.amazonaws.com/my-bucket/$id");

        if( !$return )
            return "false";

        $response = Response::make($return, 200)->header('Content-Type', "audio/mpeg");
        return $response;
    }
}

现在,在我的ssl-secured服务器上,将显示实际的音频文件,但它实际上不会播放或流式传输。关于如何实现这个的任何想法?

编辑:此外,我确实意识到我将支付双倍的带宽成本(服务器s3,服务器到世界),这完全没问题。

0 个答案:

没有答案