直接贴上脚本代码,反正都是几乎看阿里云案例搞得,没撒就是方便别人免得重复造轮子罢了,
require_once 就是引入阿里云oss 的包,
例举:如果哪个项目引入了阿里云oss,大部分composer引入都是在vendors目录下,那么可以直接,require_once '/www/wwwhtml/项目目录/vendor/aliyuncs/oss-sdk-php/autoload.php';
<?php
require_once './aliyun-oss-php-sdk-master/autoload.php';
static $oss = [
'key'=>'',
'secret'=>'',
'end_point'=>'http://oss-cn-shenzhen.aliyuncs.com',
'ALI_OSS_READ_URL'=>'',
'BUCKET'=>''
];
try {
$ossClient = new \OSS\OssClient($oss['key'], $oss['secret'], $oss['end_point']);
} catch (\OSS\Core\OssException $e) {
print $e->getMessage();
return;
}
try {
$listObjectInfo = $ossClient->doesBucketExist($oss['BUCKET']);
} catch (\OSS\Core\OssException $e) {
printf(__FUNCTION__ . ": FAILED\n");
printf($e->getMessage() . "\n");
return;
}
$path = "audiores/".date("Ymd",strtotime("-2 day")).'/';
try{
(boolean) $exist = $ossClient->doesObjectExist($oss['BUCKET'], $path);
if(!$exist){
return 'ok';
}
} catch(\OSS\Core\OssException $e) {
printf(__FUNCTION__ . ": FAILED\n");
printf($e->getMessage() . "\n");
echo "333333333333333";
return;
}
$options = array(
\OSS\OssClient::OSS_MAX_KEYS => 200,
\OSS\OssClient::OSS_PREFIX => $path,
);
try {
$listObjectInfo = $ossClient->listObjects($oss['BUCKET'], $options);
} catch (\OSS\Core\OssException $e) {
printf(__FUNCTION__ . ": FAILED\n");
printf($e->getMessage() . "\n");
return;
}
/**
* @param \OSS\Model\ObjectListInfo $listObjectInfo
* @param $ossClient
* @param $oss
*/
function extracted(\OSS\Model\ObjectListInfo $listObjectInfo,$ossClient,$oss):void
{
$prefixList = $listObjectInfo->getPrefixList();
// commonPrefixs列表中显示的是fun目录下的所有子文件夹。
if (!empty($prefixList)) {
foreach ($prefixList as $prefixInfo) {
$options = array(
\OSS\OssClient::OSS_MAX_KEYS => 200,
\OSS\OssClient::OSS_PREFIX => $prefixInfo->getPrefix(),
);
$listSubjectObjectInfo = $ossClient->listObjects($oss['BUCKET'], $options);
extracted($listSubjectObjectInfo,$ossClient,$oss);
}
}
$objectList = $listObjectInfo->getObjectList();
$data=[];
if (!empty($objectList)) {
foreach ($objectList as $objectInfo) {
$data[] = $objectInfo->getKey();
}
$delObjects = $ossClient->deleteObjects($oss['BUCKET'], $data);
foreach ($delObjects as $info){
$obj = strval($info);
}
}
}
extracted($listObjectInfo,$ossClient,$oss);
return 'ok';