我可以将文件写到linux目录中,并在cfscript中指定文件权限吗?

时间:2018-09-03 11:36:15

标签: coldfusion file-permissions

我有一个函数,可以将ColdFusion查询结果作为文件写入temp目录。它工作正常,并且省去了如此频繁地运行查询的时间。

但是,我想编写一个git钩子来删除这些缓存的文件,因为当我们推送新代码时,数据可能已经过时,因此应该替换。这些文件是由apache用户在644模式下创建的。 git用户与apache用户在同一组中,因此为了使git用户能够删除文件,我想在其中创建它们,或者随后将它们设置为664模式。

最初,我在使用objectSave之后添加了fileSetAccessMode:

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

但是这似乎没有效果,所以尝试了

fileWrite( filepath, data, '664' );

这似乎也可以很好地写入文件,但是没有设置权限。

我注意到Adobe Docs for fileWrite没有为mode指定参数,所以我猜这就是为什么不起作用的原因。一般而言,我更喜欢cfdocs.org,但是their take on the cfscript versions of cffile令我很困惑,因为不清楚哪个函数使用哪个参数。

经过更多的谷歌搜索,我发现了这个cflib.org cftag style function,我想我可以借用并在cfscript中引用它,但我真的不想这样做。

我真正想知道的是,我可以仅在cfscript中实现此功能,还是脚本和标记之间的API功能有真正的区别? (我很确定其他情况下也是这种情况。)

非常感谢您的投入。

1 个答案:

答案 0 :(得分:3)

休息片刻,回到这之后,我发现我可以使用

fileSetAccessMode( file, '664' );

在cfscript中,令人尴尬的是,我在代码中的错误位置放置了它。但是,仍然有必要分别创建先前创建的文件,因为

fileWrite( file, content );

不支持“ mode”参数,如

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

我有consulted with some wiser members of the community,我有filed this as a bug with Adobe