2016-12-24 70 views
0

我調試了一個關於我的資產的問題,並且想要將Heroku上的公共/資產庫的內容下載到我的開發機器上的文件夾中。什麼是最好的方法來做到這一點?如何將文件從生產中下載到開發機器

我可以做

heroku run bash 

它開始我的本地開發機器上的Heroku的bash shell。使用這個,我可以列出應用程序的heroku實例上的文件。但是,如何將這些文件複製到本地開發機器的文件系統?

回答

1

像標誌的資產應該是你的混帳回購協議的一部分。如果你沒有,你想下載從Heroku的回購,你可以做

heroku git:clone -a myapp 

,你也可以從Heroku的拉回購像

git pull heroku master 

,您可以alose從Heroku的底墊狀

git pull --rebase heroku master 

我希望這有助於:)

https://devcenter.heroku.com/articles/git-clone-heroku-app

+0

我接受並贊成這個,因爲它回答了我的問題。但是,它並沒有解決我的問題。我想從特定版本下載資產。如果我回滾到該版本並執行'''git pull heroku master'''它說它是最新的。據我所見,heroku上的git存儲庫是本地機器上的git存儲庫的副本,因此不包括通過在heroku上預編譯添加的資產。任何想法如何得到這些? – Obromios

+0

那些資產可以在.gitignore? – MZaragoza

+0

不,他們不在.giitignore。問題是如果預編譯發生在heroku上,那麼它們不會被提交。 – Obromios

0

如果用戶上傳,heroku並不擅長持有資產。

我會建議上傳他們使用carrierwave然後你可以指出你的終點是相同的產品。

我的設置是:

我的Gemfile

#Gemfile 
gem 'fog', "~> 1.3.1" 
gem 'carrierwave' 

初始化

#config/initializers/carrierwave.rb 
CarrierWave.configure do |config| 
    config.storage = :fog 
    config.fog_credentials = { 
    :provider    => 'AWS', 
    :aws_access_key_id  => ENV['CARRIER_WAVE_ACCESS_KEY'], 
    :aws_secret_access_key => ENV['CARRIER_WAVE_SECRET_ACCESS_KEY'] 
    } 
    config.cache_dir = "#{Rails.root}/tmp/uploads" 
    config.fog_directory = ENV['CARRIER_WAVE_BUCKET'] 
    config.fog_attributes = { 'Cache-Control'=>'max-age=315576000' } 
end 

上傳

應用程序/上傳/ file_uploader.rb

# encoding: utf-8 
class FileUploader < CarrierWave::Uploader::Base 
    # Include RMagick or MiniMagick support: 
    # include CarrierWave::RMagick 
    # include CarrierWave::MiniMagick 

    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 
end 

我知道,這是不完全的問題,但我希望它可以幫助

:)

+0

對不起,這沒有幫助。 Heroku當然確實存儲了Ruby on Rails應用程序使用的圖像資產等,例如徽標。這是我想要下載的那種資產。 – Obromios

相關問題