Tp5 調用阿里雲OSSsdk

<?php
//阿里雲oss存儲
namespace app\common\controller;

vendor('aliyun-oss.autoload');
use OSS\OssClient;
use OSS\Core\OssException;
class AliyunOss
{
	public $accessKeyId = "";
	public $accessKeySecret = "";
	public $endpoint = "";
	public $bucket= "";
	/**
	 * oss 上傳圖片或其他文件
	 * @param $object oss存儲地址
	 * @param $filePath 帶路徑文件名
	 */
	public function uploadOssFile($object, $filePath)
	{
		try{
			$ossClient = new OssClient($this->accessKeyId, $this->accessKeySecret, $this->endpoint);
			$ossClient->uploadFile($this->bucket, $object, $filePath);
		} catch(OssException $e) {
			return false;
		}
		return true;
	}
	
	/**
	 * oss判斷文件是否存在
	 * @param $object 要判斷的文件
	 */
	public function checkFileExist($object)
	{
		try{
			$ossClient = new OssClient($this->accessKeyId, $this->accessKeySecret, $this->endpoint);
			$exist = $ossClient->doesObjectExist($this->bucket, $object);
		} catch(OssException $e) {
			return false;
		}
		return $exist;
	}
	
	/**
	 * oss 刪除多個文件
	 * @param $objects array  多個文件
	 * @return bool
	 */
	public function deleteFiles($objects)
	{
		try{
			$ossClient = new OssClient($this->accessKeyId, $this->accessKeySecret, $this->endpoint);
			$ossClient->deleteObjects($this->bucket, $objects);
		} catch(OssException $e) {
			return false;
		}
		return true;
	}
	
	/**
	 * 獲取指定文件件下的文件列表
	 * @param string $prefix   指定目錄
	 * @param string $nextMarker  從那個文件開始(不包含)(獲取文件夾下所有文件的話,值與$prefix相同)
	 * @param string $delimiter  對文件名稱進行分組的一個字符。CommonPrefixes是以delimiter結尾,並有共同前綴的文件集合。
	 * @param string $maxkeys  列舉文件的最大個數。默認爲100,最大值爲1000。
	 * @return bool array 返回文件列表
	 */
	public function listObject($prefix = '', $nextMarker = '', $delimiter= '', $maxkeys = '')
	{
		try {
			$options = array(
				'prefix' => $prefix,
				'marker' => $nextMarker,
				'delimiter' => $delimiter,
				'max-keys' => $maxkeys,
			);
			$ossClient = new OssClient($this->accessKeyId, $this->accessKeySecret, $this->endpoint);
			$listObjectInfo = $ossClient->listObjects($this->bucket, $options);
		} catch (OssException $e) {
			return false;
		}
//		$nextMarker = $listObjectInfo->getNextMarker();
		$listObject = $listObjectInfo->getObjectList();
//		$listPrefix = $listObjectInfo->getPrefixList();
		
		if (!empty($listObject)) {
			$list = array();
			foreach ($listObject as $objectInfo) {
				$list[] = $objectInfo->getKey();
			}
			return $list;
		}else{
			return false;
		}
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章