我使用Openshift。它使用git - 你只需推送,服务器就可以进行所有部署。然后我制作了一个上传图片的应用程序。显然,我在git repo中上传它们并在推送后将所有图片擦除。保存图片的最佳做法是什么?
我试过了:
1)推前拉 - 没意义
2)gitignoring / media文件夹 - 毫无意义
我可以试试:
1)仅为照片部署其他服务。我的朋友说这是一个奇怪的决定,如果我想更新新服务器
,我会遇到同样的问题2)以某种方式将照片保存在git repo之外,但我不知道如何实现它,也不知道这是不是一个好习惯
有什么建议吗?期待着读你。
答案 0 :(得分:1)
当您推送任何git时,它会保存在一个特殊目录中,该目录存储在环境变量OPENSHIFT_REPO_DIR
中。此目录始终保存当前部署的应用程序版本。
现在,Openshift有其他特殊目录,您可以通过以下环境变量OPENSHIFT_HOMEDIR
,OPENSHIFT_DATA_DIR
,OPENSHIFT_TMP_DIR
,OPENSHIFT_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。