【问题标题】:Backup of images that aren't in the repository备份不在存储库中的图像
【发布时间】:2011-10-20 20:18:10
【问题描述】:

我在 subversion 存储库中有一个网站的代码。
网站管理员可以通过 CMS 上传图片。
这些图像位于“webroot/uploads/”内的不同目录中。
该目录也是存储库的一部分。

我有一个 cron 任务来定期备份(通过 svnadmin 转储)存储库,但用户上传的图像不在备份中,因为它们不在存储库中。

目前只有 CMS 的管理员可以上传图片,其他任何网络用户都不能上传。

我正在考虑使用 tar 和 gzip 备份“webroot/uploads/*”。
一个不同的想法是以某种方式自动将上传的图像包含到存储库中。
这样做的另一个好处是,当我更新存储库时,我将在我的开发计算机中收到所有图像。

你认为最好的方法是什么?
谢谢!

【问题讨论】:

    标签: file svn backup restore


    【解决方案1】:

    通常,无法从版本控制功能(差异、标签、合并...)中受益的二进制内容(exe、dll、图像...)不受版本控制。

    但是:

    • 如果这些图像没有太大变化(即同一图像没有被反复修改),并且
    • 如果他们的数量有限(即您不上传to webroot/uploads/* 每天数千张图片)

    ,您可以考虑将它们添加到您的 SVN 存储库中(因为它是一个中心化 存储库,您不必担心像 DVCS 那样克隆存储库的完整历史记录)。

    【讨论】:

    • 感谢您的回答,VonC。当然,图像不是每天数千张。现在的问题是如何。管理员上传图片,PHP 中的一个进程将其存储,必要时创建一个目录,这取决于图片所属的内容类型。如何自动“提交”新的图像和目录(如果已创建)?谢谢!
    • 还有一个问题(这几乎是一个哲学问题):如果用户永远不会回滚到以前的版本,那么将它们存储在存储库中的需要是什么?他/她只会上传另一张图片来更改当前图片。管理员是一个对颠覆甚至外壳一无所知的用户。
    • @Víctor:您刚刚提出了一个论点反对将这些图像置于源代码控制之下;)但是如果您仍然希望它们在回购中,那么这将意味着工作您监视服务器(以及已上传的内容),将服务器中的任何更新/新文件同步回您的本地存储库,您可以在其中控制并随时提交。
    • 在考虑了利弊之后,我决定从存储库中排除与网站外观无关的图像,并通过 tar 和 gzip 将它们与存储库分开备份。感谢 VonC 的洞察力,帮助我掌握更多事实以便做出决定。
    猜你喜欢
    • 2021-06-14
    • 2010-11-18
    • 2010-09-29
    • 1970-01-01
    • 2011-01-22
    • 2013-05-07
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多