Могу ли я записать файл в каталог linux, указав права доступа к файлу в cfscript? - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть функция, которая записывает результат запроса Coldfusion в виде файла во временный каталог. Он отлично работает и избавляет от необходимости часто выполнять запрос.

Тем не менее, я хочу написать git hook, чтобы удалить эти кэшированные файлы, так как при добавлении нового кода данные могут устареть и поэтому должны быть заменены. Файлы создаются пользователем apache в режиме 644. Пользователь git находится в той же группе, что и пользователь apache, поэтому для того, чтобы пользователь git мог удалить файлы, я хочу либо создать их, либо впоследствии установить для них режим 664.

Изначально я добавил fileSetAccessMode после того, как объектSave я использовал:

objectSave( data, filepath );
fileSetAccessMode( filepath, '664' )

Однако, похоже, это не дало никакого эффекта, поэтому попытался

fileWrite( filepath, data, '664' );

, который также, кажется, хорошо пишет файл, но не устанавливает права доступа.

Я отмечаю, что Adobe Docs для fileWrite не указывает параметр для режима, поэтому я думаю, именно поэтому это не работает. Я очень предпочитаю cfdocs.org в целом, но меня очень смущает их взятие версий cfscript для cffile , так как неясно, какие функции используют какие параметры.

После еще одного поиска, я нашел эту функцию стиля cflib.org cftag , которую, я полагаю, я мог бы позаимствовать и сослаться на нее в cfscript, но на самом деле я не хочу этого делать.

Что я действительно хочу знать, так это то, могу ли я достичь этого исключительно в cfscript или есть подлинная разница в функциональности API между сценарием и тегом? (Я уверен, что в других случаях это так).

Очень благодарен за любой вклад.

1 Ответ

0 голосов
/ 03 сентября 2018

После перерыва и возвращения к этому я обнаружил, что я могу использовать

fileSetAccessMode( file, '664' );

В cfscript, и смущающе, у меня это было не в том месте в моем коде. Тем не менее, это необходимо сделать отдельно, предварительно создав файл, потому что

fileWrite( file, content );

не поддерживает параметр "mode", как в

<cffile action="write" file="file" output="content" mode="664">

проконсультировавшись с с некоторыми более умными членами сообщества , я подал это как ошибку в Adobe .

...