owncloud源码分析7--客户端上传2

之前已经介绍了客户端上传文件的位置,但是后来实践发现只有小文件走owncloud\lib\private\connector\sabre\file.php中的put方法,大文件并没有走,进一步探讨发现对于客户端上传大文件,owncloud会进行拆分上传再整合的方式,为什么这样,我做了个测试:

首先可以确定在大文件上传时,走的方法是:owncloud\lib\private\connector\sabre\file.php中的createFileChunked方法,跟进方法里面进一步找到了下面的方法:

\owncloud\lib\private\filechunking.php中的file_assemble,见文知意,也就是文件整合的方法,然后其中的assemble方法中的$this->remove()注释掉,则会在对应的用户的当前用户名下面的cache文件下发现有一堆拆分的文件,如下图:


可以看到有很多的小文件,而且可以看出拆分的大小为5120kb。那么如何整合这些文件成原文件呢,于是我又测试了一下自己写的整合方法:

首先我将以上文件复制到apache下的think文件夹下,然后运行了一下的php文件:

<?php
echo 222;
$fo=fopen("5.rar","a");
for($i=0;$i<15;$i++){
$content = file_get_contents("think/thinksns.zip-chunking-3572855997-".$i);
$flag=fwrite($fo, $content);
if(!$flag){
break;
echo "挂了!";
}
}
fclose($fo);
echo("SUCCESS!!");
?>

页面输出:222SUCCESS!!


然后再看我的www目录下:


出现了我要生成的5.rar文件,打开发现和原来的压缩文件没有区别,即成功的恢复了这个文件。

这是原文件:


大小和使用都没有问题,OK了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!要在CentOS 7上安装OwnCloud,您可以按照以下步骤进行操作: 1. 更新系统: ``` sudo yum update ``` 2. 安装必要的软件包: ``` sudo yum install epel-release sudo yum install httpd mariadb-server php php-mysql php-dom php-mbstring php-gd php-json php-curl php-zip php-xml php-intl php-apcu bzip2 ``` 3. 启动并设置服务: ``` sudo systemctl start httpd sudo systemctl enable httpd sudo systemctl start mariadb sudo systemctl enable mariadb ``` 4. 配置MariaDB: ``` sudo mysql_secure_installation ``` 按照提示设置MariaDB的root密码和其他安全选项。 5. 创建OwnCloud数据库和用户: ``` sudo mysql -u root -p CREATE DATABASE owncloud; CREATE USER 'ownclouduser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON owncloud.* TO 'ownclouduser'@'localhost'; FLUSH PRIVILEGES; EXIT; ``` 请将 'password' 替换为您想要设置的密码。 6. 下载和安装OwnCloud: ``` cd /tmp wget https://download.owncloud.org/community/owncloud-10.8.0.zip sudo unzip owncloud-10.8.0.zip -d /var/www/html/ sudo chown -R apache:apache /var/www/html/owncloud/ ``` 7. 配置Apache Web服务器: ``` sudo nano /etc/httpd/conf.d/owncloud.conf ``` 在打开的文件中添加以下内容: ``` Alias /owncloud "/var/www/html/owncloud/" <Directory /var/www/html/owncloud/> Options +FollowSymlinks AllowOverride All <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/html/owncloud SetEnv HTTP_HOME /var/www/html/owncloud </Directory> ``` 8. 重启Apache服务: ``` sudo systemctl restart httpd ``` 9. 完成安装: 在Web浏览器中访问您的服务器的IP地址或域名,然后按照OwnCloud的安装向导进行操作。 以上步骤应该可以帮助您在CentOS 7上成功安装OwnCloud。如有任何问题,请随时向我提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值