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.pswp.cn/news/282151.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282151.shtml
英文地址,請注明出處:http://en.pswp.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;就可以有效解決糖尿病帶來的影響。…