使用Capistrano部署时,在服务器中保留静态文件

Fed*_*les 6 capistrano ruby-on-rails release-management

public/files通过Web界面不断地将文件上传到我的Rails应用程序文件夹中.

我不希望将它们保存在源代码控制中,因为它们几乎占用了2 GB,所以每次执行cap deploy此操作都会将这些文件保存起来releases/并用存储在存储库中的原始副本替换目录.

我想知道在current目录中将这些文件保存在服务器中的最佳方法是什么.我的一些想法是:

  • 从源代码管理中删除该目录,并将其替换为不受Capistrano管理的外部目录的链接.
  • 创建Capistrano任务,在部署之前将目录复制到/ tmp,然后在部署完成后将其复制回/ public.

有没有标准的方法来做到这一点?

Fed*_*les 7

对于将来的记录,这是我用共享目录执行的任务:

task :link_shared_directories do     
  run "ln -s #{shared_path}/files #{release_path}/public/files"   
end    

after "deploy:update_code", :link_shared_directories   
Run Code Online (Sandbox Code Playgroud)


jon*_*nii 6

您可以将文件作为机器上另一个目录的符号链接,例如/ current目录与/ current和/ releases相同.

检查出capistrano管理/ log和/ tmp目录.