PHP 使用 OSS 批量删除图片

1、控制器 OssImageController.php(不必关注此层)

<?php
declare(strict_types = 1);
namespace app\controllers;
use app\services\OssImageService;
class OssImageController extends BaseController
{/*** oss 批量删除图片** @throws null*/public function actionDelImage(){$data = OssImageService::service()->batchDelImage($this->params);$this->response([], $data['status'], $data['msg']);}
}

 

2、service 层 OssImageService.php(业务实现层)

<?php
declare(strict_types = 1);
namespace app\services;
use app\extensions\AliOss;
use app\extensions\Helper;
class OssImageService extends BaseService
{/*** 批量删除oss图片** @param array $params* @return array* @throws null*/public function batchDelImage(array $params){/*$params['images'] = ['https://hk-server.oss-cn-hongkong.aliyuncs.com/blog/article-in/2018-08-23/010494376.jpg','https://hk-server.oss-cn-hongkong.aliyuncs.com/blog/article-in/2018-08-23/011832527.jpg'];*/if (!isset($params['images']) || empty($params['images'])) {return Helper::msg(0, '请选择需要删除的图片');}if (!is_array($params['images'])) {return Helper::msg(0, '删除图片格式错误,请传数组格式');}$ossHttpUrl = 'https://'.AliOss::bucket.'.'.AliOss::endpoint.'/';$ossHttpsUrl = 'http://'.AliOss::bucket.'.'.AliOss::endpoint.'/';$objectArray = $params['images'];// 将每一个链接的协议+bucketName+endpoint替换成'' (即去掉这部分string)foreach ($objectArray as &$v) {$v = str_replace($ossHttpUrl, '', $v);$v = str_replace($ossHttpsUrl, '', $v);}$ossClient  = AliOss::getOssClient();$bucketName = AliOss::getBucketName();// 执行批量删除$ossClient->deleteObjects($bucketName, $objectArray);return Helper::msg(1, '删除素材图片成功');}
}

 

3、说明

虽然阿里云 oss 提供了批量删除文件的方法,但这里仍然不建议使用,因为存在着操作风险,建议删除文件的操作还是在控制台手动操作。  

 

注:免费领取阿里云产品优惠券:https://www.haveyb.com/aliyun

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/282151.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

批处理中的IF详解

在CMD使用IF /?打开IF的系统帮助会发现IF有3种基本的用法! 第一种用法&#xff1a;IF [NOT] ERRORLEVEL number command 这种用法现在很少用了&#xff0c;因为它需要使用到CHOICE命令&#xff0c;这个命令现在被set /p代替了&#xff0c;它是判断CHOICE命令选择的选项的&…

fullcalendar 显示的时间间隔只有四十五分钟_【体能新视点】——女子篮球运动员比赛期间的心率、血乳酸浓度和时间运动分析...

女子篮球运动员比赛期间的心率、血乳酸浓度和时间-运动分析—摘要—本研究的目的是检验女子篮球运动员在比赛规则改变后的生理需求和运动模式。在九场正式比赛中&#xff0c;对九名大学代表队队员进行了研究。每场比赛都被录像以确定主要动作的频率&#xff0c;连续记录心率&am…

《JavaScript机器人编程指南》——1.2 NodeBot是什么,基本词汇还有哪些

本节书摘来异步社区《JavaScript机器人编程指南》一书中的第1章&#xff0c;第1.2节&#xff0c;作者&#xff1a;【美】Kassandra Perch&#xff08;珀芝&#xff09;&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.2 NodeBot是什么&#xff0c;基本词…

解决在Python中使用Win32api报错的问题,No module named win32api

一、系统环境 操作系统: Win7 64位 Python&#xff1a;3.7.0 二、在使用import win32api时&#xff0c;报错:No module named win32api 网上查到有下面解决办法&#xff1a; 方法1&#xff1a;pip install pypiwin32或pip3 install pypiwin32 或 python -m pip install pypiwin…

web网页调用本地cs客户端程序exe

1.reg注册表文件注册WST Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\WST]"URL Protocol""C:\\WSTStart.exe""WSTProtocol"[HKEY_CLASSES_ROOT\WST\DefaultIcon]"C:\\WSTStart.exe,1"[HKEY_CLASSES_ROOT\WST\shell][HKEY…

国庆快乐!

加油我的国&#xff01;繁荣强大我的国&#xff01;

《Python游戏编程入门》——1.2 初识Python

本节书摘来自异步社区《Python游戏编程入门》一书中的第1章&#xff0c;第1.2节&#xff0c;作者[美]Jonathan S. Harbour &#xff0c;李强 译&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.2 初识Python Python既是一个软件工具包&#xff0c;也是一种…

大数据:Parquet文件存储格式

一、Parquet的组成 Parquet仅仅是一种存储格式&#xff0c;它是语言、平台无关的&#xff0c;并且不需要和任何一种数据处理框架绑定&#xff0c;目前能够和Parquet适配的组件包括下面这些&#xff0c;可以看出基本上通常使用的查询引擎和计算框架都已适配&#xff0c;并且可以…

“数据门”事件频发 如何避免人为因素导致数据泄露?

前段时间&#xff0c;某酒店集团数据泄露引起轩然大波&#xff0c;泄露的数据中包含了用户姓名、手机号、邮箱、号等多项信息。卖家对这个约5亿条数据打包出售价格为8比特币或520门罗币。而关于此次信息泄露事件的原因&#xff0c;目前尚未定论。据悉&#xff0c;由于集团某程序…

lamda获取参数集合去空_JAVA集合框架知识

1. Vector用法和ArrayList区别(1) Vector的特有方法有哪些&#xff1f;void addElement(E obj) 将指定的组件添加到此向量的末尾&#xff0c;将其大小增加1。(2) Vector与ArrayList的区别是什么&#xff1f;①Vector的add()方法是同步方法&#xff0c;ArrayList的add()方法是非…

阿里云ECS服务器多种实例规格如何选择

一、什么是 ECS 云服务器ECS&#xff08;Elastic Compute Service&#xff09;是一种简单高效、处理能力可弹性伸缩的计算服务。 二、常见的几种实例规格 &#xff11;、个人类 &#xff08;1&#xff09;突发型&#xff08;t5、t6&#xff09; 特点&#xff1a;性能基线和积…

Blazor学习之旅(2)第一个Blazor应用

【Blazor】| 总结/Edison Zhou大家好&#xff0c;我是Edison。最近在学习Blazor做全栈开发&#xff0c;因此根据老习惯&#xff0c;我会将我的学习过程记录下来&#xff0c;一来体系化整理&#xff0c;二来作为笔记供将来翻看。本篇我们来构建第一个Blazor Web应用&#xff0c;…

《深入理解Hadoop(原书第2版)》——2.6本章小结

本节书摘来自华章计算机《深入理解Hadoop&#xff08;原书第2版&#xff09;》一书中的第2章&#xff0c;第2.6节&#xff0c;作者 [美]萨米尔瓦德卡&#xff08;Sameer Wadkar&#xff09;&#xff0c;马杜西德林埃&#xff08;Madhu Siddalingaiah&#xff09;&#xff0c;杰…

HTTP与服务器的四种交互方式

Http定义了与服务器交互的不同方法&#xff0c;最基本的方法有4种&#xff0c;分别是GET&#xff0c;POST&#xff0c;PUT&#xff0c;DELETE。URL全称是资源描述符&#xff0c;我们可以这样认为&#xff1a;一个URL地址&#xff0c;它用于描述一个网络上的资源&#xff0c;而H…

ubuntu 以太网已连接但是无法联网_工业以太网有多“牛X”?两个案例告诉你

现代生活中&#xff0c;工业以太网发挥的作用愈来愈重要。为增进大家对工业以太网的认识&#xff0c;本文将基于3方面介绍工业以太网&#xff1a;何为工业以太网物理层&#xff1f;工业以太网具有哪些优势&#xff1f;工业以太网两大方案介绍。如果你对工业以太网具有兴趣&…

高可用架构可行性方案

一、动静分离 把静态的&#xff0c;耗费大量带宽资源、请求资源的数据独立出来&#xff0c;缓存到cdn里去&#xff0c;包括产品详情页&#xff0c;图片、视频、js、css通通打包放到cdn里去&#xff0c;封住一部分流量&#xff0c;用cdn去承担。 二、热数据预热缓存 将一些热点数…

SublimeText 自带格式化代码功能

其实sublime自身就有格式化命令&#xff0c;就不再安装插件&#xff0c;位置在[Preferences]->[Key Bindings]->[User]中, 中文版的位置在 [首选项]->[按键绑定-用户]&#xff0c;弹出的页面中 &#xff0c;添加如下代码&#xff0c;为其设置快捷键&#xff1a;Ctr…

http服务详解(1)——一次完整的http服务请求处理过程

前言&#xff1a;要熟练掌握一个服务&#xff0c;首先需要非常了解这个服务的工作过程&#xff0c;这篇就详细解释了http服务的请求处理过程。 一次完整的http请求处理过程 &#xff08;1&#xff09;流程图 &#xff08;2&#xff09;过程详解 0、DNS域名解析&#xff1a;递归…

线程管理(九)使用本地线程变量

声明&#xff1a;本文是《 Java 7 Concurrency Cookbook 》的第一章&#xff0c; 作者&#xff1a; Javier Fernndez Gonzlez 译者&#xff1a;郑玉婷 校对&#xff1a;方腾飞 使用本地线程变量 并发应用的一个关键地方就是共享数据。这个对那些扩展Thread类或者实现Runnable接…

5训练需要更改参数吗_糖尿病病人需要多喝水吗?多喝水的5大好处,了解一下...

糖尿病是典型的慢性疾病&#xff0c;需要在生活中多加讲究&#xff0c;从各方面进行预防&#xff0c;其中喝水也是非常重要的一项调控方法。这就与糖尿病影响到患者的代谢功能有一定的关系&#xff0c;如果能够保持良好的饮水习惯&#xff0c;就可以有效解决糖尿病带来的影响。…