我有一个Rails应用程序,允许用户将mp3上传到他们的个人资料模型,然后将其与AWS S3一起存储。我试图弄清楚如何通过Fog建立连接并在点击时播放他们的歌曲,类似于Soundcloud或Bandcamp的功能。我一直在看着雾文档和类似的帖子,但我被卡住了。我想我必须使用send_file,但我不确定。任何信息,将不胜感激。我打算使用jplayer或类似的东西来实际播放音频,只需要在点击时进行连接。
更新
我目前正在尝试在我的个人资料控制器中实现此功能,请参阅此文档http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/S3/Bucket.html
bucket = s3.buckets.create('name', :grants => {
:grant_read => [
{ :uri => "http://acs.amazonaws.com/groups/global/AllUsers" },
],
:grant_full_control => [
{ :id => 'abc...mno' } # cannonical user id
{ :email_address => 'foo@bar.com' }, # email address
]
})
在我看来,我有以下内容,所以我有一些东西要看,并与之合作。
<audio id="song" class="audio_player" controls="false" preload="true">
<source src="/audios/ignite.mp3" type="audio/mpeg">
</audio>
所以这里有一个脱节,有点像我在黑暗中拍摄。我认为一点点清晰度会让我走上正轨。我也没有成功让Fog在我的控制台中工作,这对事情有帮助,但是它是一个单独的线程。谢谢你的帮助。
答案 0 :(得分:0)
我怀疑你实际上并不想通过服务器传输音频。将source属性直接指向s3可能会更好。你有几个选择。首先,由于您似乎将其设置为公共可读性,您可以直接链接到URL(我相信carrierwave有方法为您提供此URL)。你也可以在没有使用签名/过期网址的公开阅读的情况下做到这一点,但这有点复杂。
所有这一切,如果它似乎来自您的服务器(而不是S3)非常重要,您可能希望设置一个CNAME到S3,以便它仍然从那里提供,但似乎来自您的主机(或类似)的子域。希望有助于指出你正确的方向,但让我知道,我可以尝试进一步增加特异性。谢谢!