owncloud源码分析1--部分修改Demo

最近做了修改owncloud云盘的项目。

owncloud本身是一个私有云盘,用到本地目录,项目要求是存储到FTP后转存到FAST,所以需要修改很多相关的东西。

一、首先是进入文件列表时的选择根目录,可以在如下文件中修改即可:

\owncloud\apps\files\js\filelist.js中的

_setCurrentDir: function(targetDir, changeUrl) {
这个js方法,在其中加入判断直接进入FTP目录:

if(targetDir=="/"){
   targetDir="/FTP";
}

二、禁止web端本地上传

\owncloud\apps\files\ajax\upload.php

中的20行后加入判断:

if($dir=="/"){
   OCP\JSON::
error(array('data'=> array_merge(array('message'=>$l->t('Unable to Upload!!')))));
   die
();
}     

即可禁用web的本地上传功能。

三、删除文件本地也会复制问题

\owncloud\lib\private\files\view.php

中的rename方法中的

$source = $this->fopen($path1 . $postFix1, 'r');
$target = $this->fopen($path2 . $postFix2, 'w');
list(, $result) = \OC_Helper::streamCopy($source, $target);
if ($result !== false) {
   $this->touch($path2, $this->filemtime($path1));
}

// close open handle - especially $source is necessary because unlink below will
// throw an exception on windows because the file is locked
fclose($source);
fclose($target);

if ($result !== false) {
   $result &= $storage1->unlink($internalPath1);
} else {
   // delete partially written target file
   $storage2->unlink($internalPath2);
   // delete cache entry that was created by fopen
   $storage2->getCache()->remove($internalPath2);
}
直接改为$result= $storage1 -> unlink ( $internalPath1 ) ;

 四、PC客户端同步目录问题,过滤目录位置

\owncloud\3rdparty\sabre\dav\lib\Sabre\DAV\Property\Response.php中的

serialize方法,此方法会返回客户端需要的关于文件目录的信息的xml中的内容
五、除去初始化生成的文件和文件夹

E:\wamp2.5\www\owncloud\lib\private\server.php

中的394行注释掉

即下面这一行:
\OC_Util::copySkeleton($user, $folder);
注释掉,其实他的初始化文件放在了E:\wamp2.5\www\owncloud\core\skeleton文件夹中
以上只是部分修改,只针对8.0.4版本做出

需要说明的是客户端同步都是走的webdev也就是sabredav的第三方类库,需要进一步研究的话可以看一下sabredav

如果也有同学在学习,希望能多交流


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 27
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值