推送后如何在git存储库中保存上传的文件?

时间:2016-10-07 16:02:09

标签: git upload openshift

我使用Openshift。它使用git - 你只需推送,服务器就可以进行所有部署。然后我制作了一个上传图片的应用程序。显然,我在git repo中上传它们并在推送后将所有图片擦除。保存图片的最佳做法是什么?

我试过了:

1)推前拉 - 没意义

2)gitignoring / media文件夹 - 毫无意义

我可以试试:

1)仅为照片部署其他服务。我的朋友说这是一个奇怪的决定,如果我想更新新服务器

,我会遇到同样的问题

2)以某种方式将照片保存在git repo之外,但我不知道如何实现它,也不知道这是不是一个好习惯

有什么建议吗?期待着读你。

1 个答案:

答案 0 :(得分:1)

当您推送任何git时,它会保存在一个特殊目录中,该目录存储在环境变量OPENSHIFT_REPO_DIR中。此目录始终保存当前部署的应用程序版本。

现在,Openshift有其他特殊目录,您可以通过以下环境变量OPENSHIFT_HOMEDIROPENSHIFT_DATA_DIROPENSHIFT_TMP_DIROPENSHIFT_LOG_DIR访问这些目录。 OPENSHIFT_DATA_DIR是持久数据目录。每次git推送后,此目录的内容都不会被删除。您应该始终将文件保存在此目录中,这是一个很好的做法。这就是Openshift的工作原理。

如果您的应用程序处理上传的图像,请修改应用程序代码以将其保存在数据目录中。您可以使用OPENSHIFT_DATA_DIR环境变量来获取数据目录位置。如何在应用程序中访问环境变量取决于您使用的编程语言。

在php中,

$data_dir = getenv('OPENSHIFT_DATA_DIR');
node.js中的

var dataDir = process.env.OPENSHIFT_DATA_DIR

有关Openshift使用的环境变量列表,请参阅here