更改Trac附件路径

时间:2011-08-06 16:30:39

标签: configuration trac

如何更改Trac的附件路径/文件夹?

我有虚拟主机:

/home/public_html/ - my www folder
/home/trac/ - trac projects folder
/home/trac/attachment/ - attachment folder

但我无法访问它。当我附加文件时,我无法通过Apache输出文件,因为它存储在apache htdocs之外。

我无法使用'别名' :/(我无法访问Apache配置文件,我只有.htaccess) 我可以访问Trac源(但它们存储在.egg文件中的哪个位置?)

我需要做什么?我想将附件文件夹移动到/ home / public_html / attachment /

1 个答案:

答案 0 :(得分:1)

你有几个选择:

  • 将附件移至新位置,然后将带有符号链接的attachments目录替换为新位置。
  • 将附件移动到新位置,然后编辑Trac源代码并更改附件的路径。该路径目前为relative to the environment folder,因此您必须将其更改为绝对路径。
  • 将附件移动到新位置,并实施一个小插件,用于修补上面链接的Attachment._get_path()方法。

但是您不应该使用任何这些解决方案,原因如下:

  • 通过Web服务器直接提供附件会绕过所有权限检查,因此每个人都可以访问所有附件。
  • 附件文件名中的特殊字符会出现问题(特殊字符在文件名中以URL编码)。
  • 如果您修补源代码或对其进行修补,则您的安装将更难维护。

为什么要从Web服务器提供附件?您的用户会非常重视下载附件吗?

正确的解决方案是在Trac中实现X-Sendfile,这是我们打算在不久的将来做的事情。有关跟踪进度,请参阅#7894