laravel 使用 qiniu-laravel-storage 七牛云存储依赖包,改造项目

微信小程序 laravel8 (多文件上传本地) html页面 <view class="uppic"> <text class="iconfont icon-jiahao" bindtap="upfile"></text> </view> <view> <block wx:for="{{picture}}"> <image src="{{item}}" style="height: 100rpx;width: 1. 阅读详情
接着上3篇笔记:
	使用 qshell 将本地文件同步到七牛云
		https://blog.youkuaiyun.com/beyond__devil/article/details/83030702

	将 laravel 项目内静态文件,css、js、images 部署到七牛云 csdn
		https://blog.youkuaiyun.com/beyond__devil/article/details/83057313

	laravel 添加 七牛云 存储驱动
		https://blog.youkuaiyun.com/beyond__devil/article/details/83065677

已经有高手写了 laravel 的七牛云依赖包了,在 packagist.org 键入 qiniu,就可以搜索出相关的包,我们使用:
	zgldh/qiniu-laravel-storage

解决问题就是这么一步一步的进行的,谁知道什么时候突然给你来这么一出,让你觉得自己怎么这么 sb,就没想着直接搜索下 七牛云 的依赖包。

不过,话说回来,正因为有前面的这一步步,才更深入的理解了底层的原理,而且同时也解决我上一篇里的一个疑惑:
	Filesystem.php 里的 PluggableTrait 的插件的定义、使用

这在 zgldh/qiniu-laravel-storage 源码里,作者实现了,是对 Storage::xxx() 方法的一种扩展

github 地址:
	https://github.com/zgldh/qiniu-laravel-storage

用法,直接参考文档,作者写的已经很详细了。

我简单测试了下,有

项目中改造:
	又发现了严重的问题:
		1.数据库里存储的是 '全路径地址',包含了 '域名'(我也很无语~~,应该存储为 upload/xxx/xxx.jpg,这样不论本地、还是线上或者切换其他 CDN,都方便)
		2.旧版数据,有部分,还直接使用的是微信的头像,可能会包含 'http' 开头的,得区分

	开始改造:
		1.七牛云存储,配置,参考:zgldh/qiniu-laravel-storage

		2.项目公共上传方法的修改,改造成:文件存储模式
		    /**
		     * 文件上传
		     */
		    if ( !function_exists('file_upload')) {
		        function file_upload($file_input_name, $allow_extensions = ['jpg', 'jpeg', 'png', 'gif'])
		        {
		            if ( ! $file_input_name) {
		                return error(1, '未传入文件表单名!');
		            }

		            if ( ! Request::hasFile($file_input_name)) {
		                return error(1, '上传文件不存在!');
		            }

		            $file = Request::file($file_input_name);

		            if ( ! $file->isValid()) {
		                return error(1, '文件上传过程出错!');
		            }

		            $extension = strtolower($file->guessClientExtension());
		            // $extension = strtolower($file->getClientOriginalExtension());
		            if ( ! in_array($extension, $allow_extensions)) {
		                return error(1, '文件后缀错误!');
		            }
		            // 获取附件相关信息
		            $attachment_info = [
		                'name' => $file->getClientOriginalName(),
		                'size' => $file->getClientSize(),
		                'extention' => $extension,
		                'mime' => $file->getClientMimeType(),
		            ];
		            // 如果是我们允许上传的图片类型,获取图片宽、高
		            if(in_array($extension, ['jpg', 'jpeg', 'png', 'gif'])){
		                $image_size = getimagesize($file->getPathname());
		                $attachment_info['image_width'] = isset($image_size[0]) ? $image_size[0] : 0;
		                $attachment_info['image_height'] = isset($image_size[1]) ? $image_size[1] : 0;
		            }

		            // 文件上传路径
		            $file_path = 'uploads/' . date('Y-m');
		            // 文件名
		            $file_name = date('YmdHis') . mt_rand(100, 999) . '.' . $extension;

		            try {

		                // 上传成功,返回的文件路径+文件名
		                $return_path = $file->storeAs($file_path, $file_name);
		                // 获取访问路径
		                $url = Storage::url($return_path);
		            } catch (\Exception $e) {
		                return error(1, '上传异常!请联系聘学兼优工作人员!');
		            } catch (\Throwable $e) {
		                return error(1, '上传异常!请联系聘学兼优工作人员!');
		            }

		            $attachment_info['file_path'] = $return_path;
		            $attachment_info['url'] = $url;

		            return error(0, '上传成功!', $attachment_info);
		        }
		    }

		3.项目中所有静态文件,css、js、images,以及上传的图片,获取访问路径,添加公共函数:
		    /**
		     * 获取静态文件&上传文件访问路径
		     */
		    if ( !function_exists('cdn_url')) {
		        function cdn_url($path, $disk = null)
		        {

		        	// 传递 $path 可能为 '微信头像'
		            if(strpos($path, 'http') !== false){
		                return $path;
		            }

		            // 传递 $path 可能为 'base64' 图片详情
		            if(strpos($path, 'base64') !== false){
		            	return $path;
		            }

		            return Storage::disk($disk)->url($path);
		        }
		    }

		4.写脚本,将数据库里,有关七牛云上传的文件,全部去除域名前缀,例如:
				http://7xwdxi.com1.z0.glb.clouddn.com/uploads/2018-08/xxx.jpeg
			改为:
				uploads/2018-08/xxx.jpeg

			(
				另外,之前的笔记提到过,新创建个 '空间',来删除额外的很多废图,想重新把相关的文件,导入到新空间!!!(这个过程可能比较麻烦)
			)

			执行 sql 语句,批量去除前缀:
				$prefix = 'http://7xwdxi.com1.z0.glb.clouddn.com/';
		        $prefix_length = strlen($prefix);

				DB::statement("update attachments set path=right(path, length(path)-{$prefix_length}) where path like '%{$prefix}%'");
				... 所有表 ...

			注意:
				从数据库中获取所有真实使用的七牛云文件,使用 qshell 从源空间迁移到新空间(仅限于同区域):
					qshell batchcopy <源空间名> <目标空间名> <源文件名和目标文件名映射列表,使用 \t 分隔。无需重命名,则不用添加目标文件名列表>	

				对于跨区的空间迁移,只能通过七牛云控制台里的 '跨区域同步管理'。
				为了删除废弃文件,我是先使用 '跨区域同步管理',同步到 'tmp' 空间(同我们的目标空间,在一个区域),然后再执行 qshell batchcopy 导入我们需要的文件

		5.项目中所有静态文件,css、js、images,使用 qshell 也迁移到七牛云
			这个步骤已经实现,参考笔记1

		6.接下来最麻烦的是:
			将项目中所有的 css、js、images等引用,全部使用 cdn_url() 来替换!!!

	全站改造,相当麻烦,整体上没有问题,细节需要结合项目自身修改!

七牛云相关文档,总算结束了,自己项目改造,应该2天左右就能结束!希望到时候访问速度快点!

 

laravel 使用qiniu-laravel-storage插件上传文件至七牛云,及大文件分段上传 laravel 使用qiniu-laravel-storage插件上传文件至七牛云,及大文件分段上传 安装去config/app.php 里面的 providers 数组, 加上一行,注册服务提供者去config/filesystem.php 里面的 disks数组加上,配置驱动调用实例其他使用情况可以去参考github说明。... 阅读详情

相关推荐

Laravel开发-qiniu-laravel-storage Laravel5的Qiniu资源(云)存储SDK为

Laravel开发-qiniu-laravel-storage Laravel5的Qiniu资源(云)存储SDK为 用于Laravel 5的qiniu资源(云)存储SDK

laravel 七牛云上传

第一步:需要安装七牛云依赖(根目录composer安装) composer require zgldh/qiniu-laravel-storage d

pure_one的博客 572

Laravel开发-qiniu-laravel-storage-dawei

Laravel开发-qiniu-laravel-storage-dawei 用于Laravel 5的qiniu资源(云)存储SDK

laravel 上传文件到七牛云

1:使用之前,先通过Composer安装: composer require zgldh/qiniu-laravel-storage 如果执行过程中报以下错误:说明php没有开启扩展fileinfo,在php扩展开启fileinfo即可 Your requirements could not be resolved to an installable set of packages...

猪年大吉的博客 1853

Laravel开发-qiniu-laravel-storage

Laravel开发-qiniu-laravel-storage 用于Laravel 5的qiniu资源(云)存储SDK

Laravel开发-laravel-storage-qiniu

Laravel开发-laravel-storage-qiniu Laravel5和Qiniu SDK的存储库

Spinning Up GPU优化终极指南:7个技巧大幅提升深度强化学习训练效率 [特殊字符]

深度强化学习(Deep RL)是当前人工智能领域最热门的技术之一,而**Spinning Up**作为OpenAI推出的教育性深度强化学习资源,为学习者和研究者提供了完整的算法实现和实验框架。然而,在实际应用中,GPU优化是提升训练效率的关键因素。本文将为您详细介绍如何在Spinning Up项目中实现GPU优化,大幅提升训练速度!🎯 ## 为什么GPU优化对Spinning Up如此重要?⚡

gitblog_00018的博客 608

大华/华睿工业相机(摄像头)链接电脑,并用OpenCV打开

睿科是大华旗下机器视觉子公司,现在工业相机一般是华睿在产,要下载驱动程序,要到华睿官网哪里下载。由于我的电脑没有摄像头,所以摄像头序列化为0,电脑的第一个摄像头默认为0,序列号是0,1,2,3……,你是什么接口连接的就选择什么, 建议直接全选。我这里选择第二个,下载后点击安装,的你要点击识别右侧设置,设置。这个过程很简单,故不赘述。打开你的设备会在右边显示。

qq_48050838的博客 1万+

探索 Laravel 文件系统中的七牛云存储扩展: Laravel-Filesystem-Qiniu

探索 Laravel 文件系统中的七牛云存储扩展: Laravel-Filesystem-Qiniu 项目简介 是一个由著名开发者 Overtrue 创建的 Laravel 扩展包,它使得在 Laravel 应用中集成七牛云存储服务变得更加轻松。通过此扩展,你可以方便地将文件上传、管理等功能无缝对接到七牛云,充分利用其高性能、高可用性和丰富功能。 技术分析 基于 Laravel 的 FileS...

gitblog_00048的博客 655

实用电路精讲系列---双级运放放大电路(差分放大+跟随缓冲)

本文分析了双极运放放大电路的工作原理及其典型应用。该电路结合差分放大器和跟随缓冲器,实现高精度信号放大与阻抗匹配。差分放大器通过放大差模信号并抑制共模噪声提升信噪比;跟随缓冲器则提供阻抗变换,确保信号稳定传输。两者协同工作可优化输入阻抗、增强噪声抑制并提高设计灵活性。文章还列举了10个典型应用案例,包括医疗设备、工业传感器和新能源系统等,展示了该电路在精密电子系统中的关键作用。最后通过实用电路分析,详细说明了各模块功能及设计注意事项。

weixin_40590799的博客 2951

决策大模型与生成式大模型有何不同?一文拆解技术框架与落地路径

大模型技术正从内容生成走向复杂场景的智能决策。与生成式大模型拟合概率分布不同,决策大模型以序列决策为核心,融合强化学习机制,在动态环境中感知反馈、持续修正行动路径。其技术框架涵盖语义理解、规划推理与闭环决策,并通过世界模型进行低成本仿真推演,显著提升供应链调度、物流排程等场景的应对效率。实际落地时需结合传统优化算法与人工兜底,构建“语义先导+数值寻优”的分层架构,才能平衡精度与稳定性。这篇内容拆解决策大模型的技术组成、落地路径与常见误区,为企业智能化转型提供可参考的实践框架。

weixin_29057163的博客 188

Laravel on SAE use Qiniu

在sae上部署laravel 5>~,并使用七牛云存储 该博客引用了:夏天,zgldh分享的技术并加以总结汇总,在此特别感谢 该博本内容使用laravel环境:laravel-v5.2.15,php-5.6 第一步,安装七牛云储存插件 当你安装好laravel环境或者创建...

chudouchao5299的博客 151

【CSP-J/S】复赛注意事项 上机文件组织形式

每年/S 复赛都有很多同学因为一些小失误导致一年的努力付之东流。Tony老师整理了一些复赛容易踩坑的点,或许对你有帮助!

星卯教育-信奥教练tony 1万+

七牛云 Laravel 存储扩展教程

七牛云 Laravel 存储扩展教程 项目介绍 qiniu-laravel-storage 是一个为 Laravel 框架设计的扩展包,用于简化与七牛云存储服务的集成。通过这个扩展包,开发者可以轻松地在 Laravel 应用中上传、管理和访问存储在七牛云上的文件。 项目快速启动 安装 首先,通过 Composer 安装 qiniu-laravel-storage 扩展包: composer req...

gitblog_00527的博客 572

保姆级教程:用Zemax 18.9复现单模光纤耦合仿真(附康宁SMF-28e参数)

本文提供了一份详细的Zemax 18.9单模光纤耦合仿真教程,以康宁SMF-28e为例,涵盖从软件设置、材料参数输入到系统构建和优化的全流程。通过光束耦合分析和物理光学传播(POP)技术,帮助用户准确模拟光纤耦合效率,并解决常见问题,适用于光学设计初学者和专业人士。

weixin_27330481的博客 312

AI安全护栏评测:TrustedExecBench如何量化评估大模型防护能力

在人工智能和机器学习领域,模型安全对齐是确保AI系统可靠、可控的核心技术。其原理是通过设计安全机制(即“护栏”)来约束模型行为,防止生成有害、偏见或越界内容。这项技术的核心价值在于平衡AI能力与风险管控,是可信AI部署的基石。应用场景广泛覆盖内容审核、对话系统、代码生成等需要人机交互的领域。本文聚焦的TrustedExecBench项目,正是针对“护栏”性能量化评估这一痛点,提供了一个标准化、自动化的开源评测框架。该工具通过构建多维度的恶意测试套件,并引入基于模型的动态评判机制,能够系统性地检验大语言模型在

weixin_42525428的博客 378

laravel 上传文件到七牛云 zgldh/qiniu-laravel-storage

​ 1:使用之前,先通过Composer安装: composer require zgldh/qiniu-laravel-storage 如果执行过程中报以下错误:说明php没有开启扩展fileinfo,在php扩展开启fileinfo即可 Your requirements could not be resolved to an installable set of packages...

owenzhang的博客 605

学习笔记:TF卡启动荔枝派Nano(全志F1C200S)

荔枝派Nano编译Kernel报错报错内容如下编译烧录 报错内容如下 No controllers found No ethernet found. 从这些报错我真没看从出啥问题,也是在网上找,说是没有找到flash,是因为淘宝买的板子更换了flash,需要在u-boot里面重新适配型号: 板子的型号为xt25f128,但是实际u-boot的配置里面不是需要重新更改: u-boot/arch/arm/dts/suniv-f1c100s-licheepi-nano.dts &spi0 { pin

热爱科技,物联,程序开发等 2133

laravel5中使用七牛云存储、上传图片

安装 composer require itbdw/laravel-storage-qiniu config/app.php 里面的 providers 加上一行  itbdw\QiniuStorage\QiniuFilesystemServiceProvider::class, config/filesystems.php 里面的 disks数组加上'qiniu' => [

fangdong88的博客 7377

爬取B站评论+AI情感分析:Python批量抓数据+BERT正负向分类(全流程)

B站作为年轻群体聚集的内容平台,评论区蕴含海量用户真实态度(如好评、吐槽、中立观点),是情感分析的优质数据源!本文分享完整流程:批量爬取B站视频评论→数据清洗去噪→BERT模型情感分类→可视化分析,基于预训练BERT模型实现高精度正负向判断,新手也能快速复刻情感分析系统! 前置配置(关键!获取B站API访问权限) B站评论通过官方API接口返回,无需复杂解析,只需配置用户Cookie即可正常请求: 2. 完整代码(直接复制运行) 三、使用步骤(5步搞定,新手友好) 步骤1:配置关键参数 打开,在类中修改

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1068

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

laravel+七牛云的存储

Laravel + 七牛云存储(图片) 之前一直想要用laravel和七牛云做一下图片的存储,找了一些博客进行了尝试,但是每次都是失败的,等到不忙的时候再进行了一次认真的尝试,最后终于尝试成功,现在记录一下成功后的结果。 composer require itbdw/laravel-storage-qiniu config/app.php下的providers 添加itbdw\QiniuSt...

hwy的博客 904

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Laravel中上传图片至七牛云

安装 composer require itbdw/laravel-storage-qiniu 安装成功页面 安装后 itbdw\QiniuStorage\QiniuFilesystemServiceProvider::class; 控制器里的方法 上传成功后返回的网址 转载于:https://www.cnblogs.com/kuiba/...

254

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

七牛 php sdk 使用,Laravel5 七牛存储组件(使用官方SDK)

Laravel5 七牛存储组件(使用官方SDK)这个包是在七牛官方 PHP-SDK 的基础上再次做的封装,使其符合 Laravel 中操作文件的规范,因此可高度信赖。声明该 repo 是基于 https://github.com/zgldh/qiniu-laravel-storage 改的。这个repo在原来的基础上,改了一些东西,使大家可以通过 composer 的方式正确的引入该组件和七牛组件...

weixin_35949298的博客 286

laravel8 七牛云图片上传

1.根据composer下载第三方插件 composer require itbdw/laravel-storage-qiniu 2.打开config 文件夹下的 app.php 文件,在 providers 中加入一下代码 itbdw\QiniuStorage\QiniuFilesystemServiceProvider::class, 3.打开config 文件夹下的 filesystems.php 文件,在 disks中加入一下代码 'qiniu' => [ ...

guanj0623的博客 452

laravel七牛云文件上传

Composer 安装 composer require zgldh/qiniu-laravel-storage config/app.php 中注册服务提供者: zgldh\QiniuStorage\QiniuFilesystemServiceProvider::class config/filesystems.php 里的 disks 中新增七牛配置: 'qiniu' => [ 'driver' => 'qiniu', 'domains' =>

that_were_you的博客 170
上一篇: laravel 添加 七牛云 存储驱动
下一篇: mac 下使用 valet 搭建 laravel 开发环境
beyond__devil
博客等级 码龄14年 147粉丝 314原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值