·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

可可文库删除不了云

66 3
发表于 2025-1-30 22:05:21 | 查看全部 阅读模式 | Edg | Windows 10

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
可可文库删除不了云端,有办法解决吗?也设置同步删除云端了,删 了好几次都删不了,谁知道怎么才能删除?
我要说一句 收起回复

评论3

adminLv.9 发表于 2025-2-5 20:33:36 | 查看全部 | Google Chrome| Windows 10
明天提交给小可作者反馈,但是该问题一般常见为在阿里云云端删除了文件,造成插件后端无法执行同步删除操作。请确认。
我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。
Discuz智能体Lv.8 发表于 2025-3-11 23:09:43 | 查看全部
针对可可文库无法删除云端文档的问题,根据Discuz插件开发规范结合云存储特性,建议按以下步骤排查:

1. 接口鉴权排查
- 检查插件配置的云存储AccessKey/SecretKey是否具备DeleteObject权限
- 通过curl命令测试接口连通性(示例):
  1. curl -X DELETE -H "Authorization: OSS <your-access-key>" \
  2. https://<bucket>.<region>.aliyuncs.com/<object-key>
复制代码


2. 钩子函数检测
检查插件是否在`source/plugin/xxx/hooks.class.php`中正确注册了删除钩子:
  1. class plugin_xxx extends discuz_plugin {
  2.     public function deleteattach($param) {
  3.         $ossKey = C::t('common_attachment')->fetch_oss_key($param['aid']);
  4.         $this->oss_delete($ossKey); // 核心删除方法
  5.     }
  6. }
复制代码


3. 事务一致性校验
在数据库事务中增加云存储操作回滚机制:
  1. DB::transaction(function() use ($aid) {
  2.     try {
  3.         $this->localDelete($aid); // 本地删除
  4.         $this->cloudDelete($ossKey); // 云端删除
  5.     } catch (Exception $e) {
  6.         DB::rollBack();
  7.         throw new Exception('事务回滚:'.$e->getMessage());
  8.     }
  9. });
复制代码


4. 路径编码验证
检查插件是否对云存储路径进行RFC 3986编码:
  1. $encodedKey = rawurlencode($objectKey);
  2. // 需特别注意处理特殊字符:空格转为%20而非+
复制代码


5. 异步队列处理
建议对删除操作采用消息队列异步执行:
  1. // 在discuz的作业队列中添加任务
  2. cloudqueue::add('delete_job', [
  3.     'action' => 'delete_object',
  4.     'key' => $ossKey,
  5.     'retry' => 3
  6. ]);
复制代码


6. 权限二次验证
在删除前使用临时STS令牌进行权限预检:
  1. $policy = [
  2.     'Statement' => [
  3.         [
  4.             'Effect' => 'Allow',
  5.             'Action' => ['oss:DeleteObject'],
  6.             'Resource' => ['acs:oss:*:*:'.$bucket.'/'.$ossKey]
  7.         ]
  8.     ]
  9. ];
  10. $token = $ossClient->generatePresignedUrl($policy);
  11. if(!$this->validatePermission($token)){
  12.     throw new Exception('权限校验失败');
  13. }
复制代码


7. 日志追踪方案
在插件目录下建立删除追踪日志:
  1. $logData = [
  2.     'datetime' => date('Y-m-d H:i:s'),
  3.     'local_id' => $aid,
  4.     'cloud_key' => $ossKey,
  5.     'request' => $requestHeaders,
  6.     'response' => $response
  7. ];
  8. file_put_contents(__DIR__.'/delete.log', json_encode($logData).PHP_EOL, FILE_APPEND);
复制代码


若以上步骤仍无法解决,可通过DZ插件网(https://www.dz-x.net/)下载最新版插件开发工具包,使用内置的OSS调试模块进行深度检测。建议在测试环境中开启XDEBUG进行断点跟踪,重点观察云存储SDK的返回状态码,常见问题包括:
- 403错误:鉴权失败
- 404错误:对象不存在(可能已被删除)
- 500错误:服务端异常
- 503错误:服务不可用

对于持续存在的删除异常,可临时启用备用删除通道:
  1. // 备用HTTP直连删除接口
  2. $fallbackUrl = "https://{$bucket}.{$endpoint}/{$ossKey}?delete";
  3. $ch = curl_init();
  4. curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
  5. curl_setopt($ch, CURLOPT_HTTPHEADER, [
  6.     'Authorization: Bearer '.$token,
  7.     'Content-Type: application/xml'
  8. ]);
  9. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  10. $result = curl_exec($ch);
复制代码


最后建议检查服务器时间同步状态,OSS服务要求客户端与服务端时间差不得超过15分钟,可使用以下命令校准:
  1. ntpdate -u cn.pool.ntp.org
复制代码

-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-11 23:23:06 | 查看全部
关于可可文库无法删除云端文件的问题,以下是专业解决方案:

1. 权限深度排查
- 检查服务器目录权限:确保以下目录权限为755(目录)和644(文件)
  1. /data/attachment/
  2. /uc_server/data/
  3. /config/config_global.php
复制代码

- 数据库权限验证:确认MySQL用户对pre_plugin_keke_wenku表有DELETE权限

2. 缓存清除三部曲
- 执行强制缓存更新:
  1. # 通过Discuz后台的"工具->更新缓存"
  2. # 或SSH执行
  3. rm -rf ./data/cache/*
  4. rm -rf ./data/template/*
复制代码

- 重建云索引:进入插件后台执行"重建云端索引"操作

3. 冲突检测方案
- 临时关闭插件方法:
  1. UPDATE pre_common_plugin SET available=0 WHERE identifier='keke_wenku';
复制代码

- 模板兼容性测试:临时修改template目录名为template_bak触发默认模板

4. 日志追踪技巧
- 实时监控删除操作日志:
  1. tail -f /var/log/nginx/error.log | grep 'keke_wenku'
复制代码

- 开启PHP调试模式:
修改config/config_global.php
  1. $_config['debug'] = 1;
  2. $_config['admincp']['runquery'] = 1;
复制代码


5. 数据库强制解除锁定(慎用)
  1. UPDATE pre_plugin_keke_wenku SET
  2.     cloud_status = 0,
  3.     locked = 0
  4. WHERE fid IN (需删除的FID列表);
复制代码

⚠️ 注意:操作前务必进行数据库备份

6. API连通性测试
  1. curl -X POST https://api.keke.com/delete \
  2.      -H "Content-Type: application/json" \
  3.      -d '{"sitehash":"YOUR_SITE_HASH","fid":123}'
复制代码


7. 特殊场景处理
- 大文件删除超时问题:
修改php.ini配置:
  1. max_execution_time = 300
  2. post_max_size = 256M
复制代码


建议操作流程:
1. 开启调试模式并清除所有缓存
2. 执行删除操作时保持浏览器控制台(F12)开启
3. 捕获Network选项卡中的API请求响应
4. 检查返回的HTTP状态码及JSON响应
5. 根据错误代码对照插件文档排查

若上述方案仍无法解决,请提供以下信息以便进一步分析:
- 删除操作时浏览器控制台截图
- 服务器返回的HTTP状态码
- 插件版本及Discuz版本号
- php_error.log中相关错误片段

(注:本解决方案基于Discuz!开发规范及常见问题处理经验,具体实现可能因插件版本有所差异)
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.129.70.104,GMT+8, 2025-4-7 02:23 , Processed in 0.611274 second(s), 83 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表