|
在阿里云开通阿里云对象存储oss功能后,按以下步骤减少配置难度。
安装aliyuncs/oss-sdk-php
composer require aliyuncs/oss-sdk-phpphp 使用
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Http\Controllers\Api\WechatController;
use Illuminate\Support\Facades\Cache;
use OSS\OssClient;
use App\Http\Controllers\Api\ImgsizeController;
class OssController extends Controller
{
public $accessKeyId = &#34;&#34;;//<您从OSS获得的AccessKeyId>
public $accessKeySecret = &#34;&#34;;//<您从OSS获得的AccessKeySecret>
public $endpoint = &#34;&#34;;//<您选定的OSS数据中心访问域名,例如oss-cn-hangzhou.aliyuncs.com>
public $bucket = &#34;&#34;;//<您使用的Bucket名字,注意命名规范>
//oss连接对象
public function getossclient(){
try {
$ossClient = new OssClient($this->accessKeyId, $this->accessKeySecret, $this->endpoint);
} catch (OssException $e) {
print $e->getMessage();
}
return $ossClient;
}
//上传文件到oss
public function uploadoss(Request $request){
$content=$request->file(&#39;files&#39;);
$object = &#34;active/&#34;.date(&#34;Y/m/d&#34;).&#34;/&#34;.uniqid().&#34;.&#34;.$content->getClientOriginalExtension();//<您使用的Object名字,注意命名规范>
try {
$ossClient=$this->getossclient();
$ossClient->uploadFile($this->bucket, $object, $content);
} catch (OssException $e) {
print $e->getMessage();
}
return [&#39;code&#39;=>1,&#39;msg&#39;=>&#34;上传成功&#34;];
}
//获取oss数据列表
public function getosslist(Request $request){
$prefix = $request->input(&#39;path&#39;,&#39;&#39;);
$delimiter = &#34;/&#34;;
$nextMarker = &#39;&#39;;
$maxkeys = 1000;
$options = array(
&#39;delimiter&#39; => $delimiter,
&#39;prefix&#39; => $prefix,
&#39;max-keys&#39; => $maxkeys,
&#39;marker&#39; => $nextMarker,
);
try {
$ossClient=$this->getossclient();
$listObjectInfo = $ossClient->listObjects($this->bucket, $options);
} catch (OssException $e) {
printf(__FUNCTION__ . &#34;: FAILED\n&#34;);
printf($e->getMessage() . &#34;\n&#34;);
return;
}
$objectList = $listObjectInfo->getObjectList(); // object list
// echo(&#34;<pre>&#34;);
// var_dump($objectList);
$prefixList = $listObjectInfo->getPrefixList(); // directory list
if (!empty($prefixList)) {
foreach ($prefixList as $prefixInfo) {
echo &#34;<img src=&#39;https://rdjmobile.oss-cn-beijing.aliyuncs.com/rdjother/other/%E6%96%87%E4%BB%B6%E5%A4%B9.png&#39; style=&#39;vertical-align:middle &#39;><a href=&#39;/getosslist?path=&#34;.$prefixInfo->getPrefix(). &#34;&#39;>&#34;.$prefixInfo->getPrefix() . &#34;</a><br>&#34;;
}
}
if (!empty($objectList)) {
foreach ($objectList as $objectInfo) {
echo &#34;<img src=&#39;https://rdjmobile.oss-cn-beijing.aliyuncs.com/rdjother/other/%E6%96%87%E4%BB%B6.png&#39; style=&#39;vertical-align:middle &#39;><a href=&#39;https://rdjmobile.oss-cn-beijing.aliyuncs.com/&#34;.$objectInfo->getKey() . &#34;&#39;>&#34;.$objectInfo->getKey() . &#34;</a><br>&#34;;
}
}
}
//删除文件
public function deleteoss(){
$object = &#34;rdjother/other/图 片.png&#34;;
try {
$ossClient=$this->getossclient();
$ossClient->deleteObject($this->bucket, $object);
} catch (OssException $e) {
printf(__FUNCTION__ . &#34;: FAILED\n&#34;);
printf($e->getMessage() . &#34;\n&#34;);
return;
}
return [&#39;code&#39;=>1,&#39;msg&#39;=>&#34;删除成功&#34;];
}
}效果图
 |
|