2016-10-07 2 views
0

Я использую Openshift. Он использует git - вы просто нажимаете, и сервер делает все развертывания. Затем я сделал приложение, которое загружает фотографии. Очевидно, я загружаю их в git repo и после нажатия всех фотографий стирают. Какова наилучшая практика для сохранения фотографий?Как сохранить загруженные файлы в репозитории git после нажатия?

Я пробовал:

1) вытягивать перед тем, толкая - нет смысла

2) gitignoring/папка медиа - нет смысла

Я мог бы попробовать:

1) развернуть другую службу только для фотографий. Мои друзья говорят, что это странное решение, и у меня будет такая же проблема, если я хочу обновить этот новый сервер.

2) как-то сохранить фотографии за пределами git repo, но я понятия не имею, как реализовать его, и не знаю, является ли это хорошая практика

Любой совет? С нетерпением ждем вас.

+0

Поместите свои медиафайлы в другую ветку и нажмите эту ветвь в openshift, а другую ветку - только для исходного кода. –

+0

Вы заглянули в git-lfs? –

+0

@EdgardLeal, как я могу получить доступ к файлам в другой ветке от frontend? И как их загрузить? –

ответ

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.

+0

Хорошо! Это то, что мне нужно! И для доступа к этим данным мне нужно написать дополнительный getter на моем сервере для доступа к этой папке, правильно? –

+0

Да. На вашем сервере найдите каталог данных в 'variable' и используйте' variable/image.name', чтобы сохранить/получить/изменить изображение из этого каталога. –

Смежные вопросы