Ubuntu 在Openshift服务器中重新部署时删除上载的文件

Ubuntu 在Openshift服务器中重新部署时删除上载的文件,ubuntu,openshift,openshift-enterprise,Ubuntu,Openshift,Openshift Enterprise,推送整个应用程序后,整个应用程序工作正常。然后我通过我的网络界面将一些文件上传到我的上传文件夹 如果我通过git推送代码,uploads文件夹中的所有文件都会自动删除。有没有办法在我的openshift服务器中停止此操作?您的应用程序应该将所有持久性文件存储在$openshift\u DATA\u DIR中,通常是~/app root/DATA。您的应用程序可能正在将这些“上载”存储到您的代码所在的$OPENSHIFT\u REPO\u DIR中。每次您git-push时,此目录都会被新代码覆盖

推送整个应用程序后,整个应用程序工作正常。然后我通过我的网络界面将一些文件上传到我的上传文件夹


如果我通过git推送代码,uploads文件夹中的所有文件都会自动删除。有没有办法在我的openshift服务器中停止此操作?

您的应用程序应该将所有持久性文件存储在
$openshift\u DATA\u DIR
中,通常是~/app root/DATA。您的应用程序可能正在将这些“上载”存储到您的代码所在的
$OPENSHIFT\u REPO\u DIR
中。每次您
git-push
时,此目录都会被新代码覆盖


您需要将应用程序配置为在$OPENSHIFT\u DATA\u DIR中存储上传的内容,以便持久地存储它们。

在您的根wordpress local上为操作钩子创建一个DIR

mkdir -p .openshift/action_hooks
然后创建部署钩子

vim .openshift/action_hooks/deploy
粘贴这个

#!/bin/bas
echo "Creating symlink folder of uploads" 
if [ ! -d ${OPENSHIFT_DATA_DIR}uploads ]; then
    mkdir ${OPENSHIFT_DATA_DIR}uploads
fi
ln -svf ${OPENSHIFT_DATA_DIR}uploads ${OPENSHIFT_REPO_DIR}wp-content/uploads
注意:为了使.openshift/action\u hook/deploy hook可执行,它不可执行:

在Windows上:
git更新索引--chmod=+x.openshift/action\u hooks/deploy

在Linux/OSX上:
chmod+x.openshift/action\u hooks/deploy


添加更改、提交和推送。

如何将我的上传文件夹移动到$OPENSHIFT\u DATA\u DIR?这取决于您的应用程序代码。您需要修改
上传的存储位置
,以便上传将被放置在数据目录中。或者,您可以在构建操作挂钩中设置指向数据目录的符号链接。查看此论坛帖子(假设您使用的是wordpress):我同意@Timbabwe的观点,符号链接是一个不错的选择,您可以查看wordpress快速入门,了解符号链接的工作原理和创建位置: