使用Heroku显示存储在Amazon S3上的图像

时间:2011-03-20 06:57:21

标签: ruby-on-rails ruby amazon-s3 heroku carrierwave

我正在尝试上传图片,然后在我的应用中显示它们

我在Heroku上配置应用程序以将文件上传到Amazon S3。我可以将图像上传到S3。我可以在亚马逊看到它。但是我无法显示它。

我使用了代码:

<%= image_tag user.profile_image.avatar.url, :size => "80x80" %>

它生成以下HTML(我将img更改为imgtag,因为stackoverflow不允许我添加此代码):

<imgtag alt="Bob_dylanplanetwaves" height="80" src="http://appname-heroku/uploads/profile_image/avatar/1/bob_dylanplanetwaves.jpg"; width="80" />

http://appname-heroku/uploads/profile_image/avatar/1/bob_dylanplanetwaves.jpg不要指向任何有效的图像。

我尝试了以下但没有成功:

<%= image_tag user.profile_image.avatar.current_path, :size => "80x80" %>. 

它生成了这段代码:

<imgtag alt="Album-the-bootleg-series-vol-4-bob-dylan-live-1966-the-royal-albert-hall-concert" height="80" src="/images/uploads/profile_image/avatar/2/album-the-bootleg-series-vol-4-bob-dylan-live-1966-the-royal-albert-hall-concert.jpg" width="80" /> 

在这两种情况下都不会显示图像

我正在使用CarrierWave来上传文件 Ruby 1.9.2,Rails 3.0.3并在Heroku上托管

1 个答案:

答案 0 :(得分:1)

这是您的网址的外观:

src="http://s3.amazonaws.com/heroku_appname/amazon_bucket_name/pictures/large/20.jpg"

appname:您的应用中应用的名称,您可以在heroku配置文件中查看。 amazon_bucket_name:这需要是您在AS3上创建的bucked的名称。