weiwait / dcat-vue Goto Github PK
View Code? Open in Web Editor NEWdcat-admin's extension that was build in one package with vue
dcat-admin's extension that was build in one package with vue
大佬,你好!可以把又拍云也接入进来吗
1.放行权限,建议使用插件标准写法,如下
//vendor/weiwait/dcat-vue/src/DcatVueServiceProvider.php 添加放行路由配置
protected $exceptRoutes = [
'permission' => ['weiwait*'],
'auth' => ['weiwait*']
];
2.后台扩展-设置报错(上次我提pr你放弃合并那个)
//vendor/weiwait/dcat-vue/src/Setting.php 增加 use
use Weiwait\DcatVue\Models\FilesystemConfig;
3.Dcat-Admin 文档推荐用 zgldh/qiniu-laravel-storage(所以我觉得大部分人会加载这个扩展,种种原因[比如别地方使用了,估计不好彻底放弃]),所以建议咱们也用这个扩展。
如下:
Mixed Content: The page at 'https://*****/admin/wp_posts/44/edit' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://up-cn-east-2.qiniup.com/'. This request has been blocked; the content must be served over HTTPS.
希望能改进一下!
另外为啥不用 zgldh/qiniu-laravel-storage 这个呢?感觉这个用的更多~
其实php7.4就可以,没必要版本这么高吧
虽然前端计算有点耗费用户电脑,但是如果有这个,配合作者设计的 uploads表,可以实现秒传。计算完md5先请求接口看是否存在,如果存在直接返回,不存在则继续走后续上传逻辑。
就算不实现秒传,这样传oss的时候应该也会覆盖原来相同的文件不会产生多余的重复文件到存储里
首先,我已经注释掉插件里的删除方法的调用
<?php
namespace Ieras\DcatVue\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Storage;
class WeiwaitUpload extends Model
{
protected $table = 'uploads';
protected $fillable = [
'name'
];
public static function clearUnusedFiles()
{
self::query()->where('created_at', '<', now()->subDay())
->get()
->map(function (self $file) {
$file->delete();
Storage::disk($file->disk)->delete($file->name);
});
}
}
//调用的地方
public function uploaded(Request $request)
{
//WeiwaitUpload::clearUnusedFiles();
WeiwaitUpload::query()
->insert(array_map(fn($item) => ['name' => $item, 'created_at' => now(), 'disk' => $request['disk']],
(array)$request['files']
));
return Storage::disk($request['disk'])->url($request['files']);
}
感觉最大的可能就是下面这里了
protected function prepareInputValue($file)
{
WeiwaitUpload::query()->whereIn('name', (array) $file)->delete();
return parent::prepareInputValue($file);
}
不过呢,数据里的记录没被删,只是七牛的文件被删了,所以感觉也很奇怪,又不像上面这里。
我本机测试的时候并没复现出来,尽管我各种尝试、比如裁剪、删除、重置、换图等。。。
这情况发生在服务器端(并且我登录服务器看了,那个删除代码确实是注释状态),而且被删就在上传完成后的第36秒。
我的后台表单,存储着玩着的图片路径(我觉得可以排出是用户自己删的,而且我测试点击表单的删除并不会删七牛那的文件)
。。。
希望大佬帮忙看看原因,实在找不到为啥了。
我让七牛给调用删除记录了(删除ip确实来自于我的服务器,发生在上传完后的第36秒)
上传完成时间(weiwait_upload表记录的):2023-01-31 10:38:33 (可以百分百确定上传成功了,因为文件还能访问,当然是七牛的cdn缓存)
七牛给的删除日志时间:{"op":"delete","fh":"C5YEHAMQEWkOBUtbFgAAAAAAC8avNnM9ieVrtXXNP9bjibfjz9PwNNAAAADwgtHYac5VAAAA","ip":"ip我手动隐藏","mimeType":"image/png","ua":"QiniuPHP/7.7.0 (Linux/x86_64) PHP/8.1.13","bucket":"file-xxxx","uid":1382807647,"fwd":"211.0.0.0(ip我手动隐藏)","xl":"h0UAAAAShkhcRD8X","fsize":1465163,"machine":"wz41","putTime":16751327136625344,"delTime":"2023-01-31T02:39:09.566642Z","id":"8jr0sa:images/1ec9b4ebcba390f2d231caa2b1a56b61.png","region":"cn-east-2","_time":1675135906678,"hash":"FgvGrzZzPYnla7V1zT_W44m348_T"}
日志可以看出是2023-01-31T02:39:09.566642Z(+8时区)删除的,前后差了36秒
这个情况在服务端发生概率90%,当然使用者不是我,询问使用者,他也没特殊操作就是上传发布。。。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.