簡體   English   中英

Rails 3.2 Paperclip S3未在Localhost中加載

[英]Rails 3.2 Paperclip S3 Not Loading in Localhost

我剛剛升級到Rails 3.2,並且使用帶Paperclip的Amazon S3將照片上傳到我的應用程序。

在我的圖片出現之前,應該是:

 http://s3.amazonaws.com/dealphotos.website.com/photos/428/large/Sandisk120Drive?1334754504

現在,我在Localhost上的圖片網址為:

 http://s3.amazonaws.com/dealphotos.website.com/deals/photos/000/000/428/large/Sandisk120Drive?1334754504

請注意另外的000/000,即使我將它們取出並訪問鏈接也是如此:

 <Error>
  <Code>AccessDenied</Code>
  <Message>Access Denied</Message>
   <RequestId>"Long String of Numbers"</RequestId>
   <HostId>
    "Gives me a really long string of letters and numbers"
   </HostId>

我的交易模型:

   has_attached_file :photo, :styles => { :small =>"268x160>", :large =>"350x250>" },
          :storage => :s3, 
          :bucket => 'dealphotos.website.com',
          :s3_credentials => {
          :access_key_id => ENV['S3_KEY_SPICY'],
          :secret_access_key => ENV['S3_SECRET_SPICY']
        }

和圖像不顯示!

在我要做的所有事情之前,都是從Heroku那里拉來的,所有的圖像和文件都將歸我所有。 這是怎么回事?

您最有可能使用的是最新版本的回形針(版本> = 3)。

由於這是回形針的主要版本,因此有文檔證明與較早版本的回形針不兼容。

一個主要的變化(在我的書中也是這樣)是資產的默認存儲位置已更改。

以前它是/system/:attachment/:id/:style/:filename.:extension(來自內存)。 例如,如果您有兩個具有相同名稱(公司徽標和產品徽標)的附件,那將是災難性的。

現在回形針使用的新路徑是/system/:class/:attachment/:id_partition/:style/:filename.:extension

這意味着您的所有資產都將存儲在上面指定的目錄中。 :id_partitions用於使一個目錄中的節點(文件/目錄)數量不超過1000。

我希望我能夠解釋為什么您看到問題的原因。 默認路徑已更改。

您現在有2個選項-

  1. 將舊資產移至新目錄方案中的正確位置(痛苦但建議這樣做)。

  2. 將新資產移動到舊目錄結構中,並在模型的附件定義中添加:url +:path選項,以繼續使用舊方案。 (請參閱https://github.com/thoughtbot/paperclip/blob/master/UPGRADING )。

由於似乎您在新結構和舊結構中都具有圖像。 因此,無論您決定什么,都需要將文件從一種結構移到另一種結構。 除非以某種方式為資產添加書簽,否則建議您將較舊的資產移動到新的目錄結構中。

查看CarrierWave gem到文件上傳。 它可以在3.2上正常工作;)

http://railscasts.com/episodes/253-carrierwave-file-uploads

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM