Initial commit,修正
This commit is contained in:
+172
@@ -0,0 +1,172 @@
|
||||
<?php
|
||||
|
||||
# @Author: 嗨噜客(三亚) <fm453>
|
||||
# @Date: 2022-05-19T08:30:15+08:00
|
||||
# @Email: fm453@lukegzs.com
|
||||
# @Last modified by: fm453
|
||||
# @Last modified time: 2022-05-21T00:23:46+08:00
|
||||
# @Copyright: www.hiluker.cn
|
||||
|
||||
namespace vendor\huawei\obsclient;
|
||||
|
||||
// 引入依赖库
|
||||
require('vendor/autoload.php');
|
||||
require('obs-autoloader.php');
|
||||
|
||||
use Obs\ObsClient;
|
||||
use Obs\ObsException;
|
||||
use GuzzleHttp\Exception\ClientException;
|
||||
|
||||
//生成带授权信息的URL,默认有效期300s
|
||||
class TemporarySignature extends Common
|
||||
{
|
||||
public function init()
|
||||
{
|
||||
$obsClient = new ObsClient([
|
||||
'key' => $this->ak,
|
||||
'secret' => $this->sk,
|
||||
'endpoint' => $this->endpoint,
|
||||
]);
|
||||
$obsClient->initLog([
|
||||
'FilePath' => './logs',
|
||||
'FileName' => 'eSDK-OBS-PHP.log',
|
||||
'MaxFiles' => 10,
|
||||
'Level' => WARN
|
||||
]);
|
||||
$this->obsClient = $obsClient;
|
||||
}
|
||||
|
||||
public function createBucket($bucketName)
|
||||
{
|
||||
$obsClient = $this->obsClient;
|
||||
/*
|
||||
* Create bucket
|
||||
*/
|
||||
$method = 'PUT';
|
||||
$res = $obsClient -> createSignedUrl(['Bucket' => $bucketName, 'Method' => $method]);
|
||||
doAction('Create bucket', $method, $res['SignedUrl']);
|
||||
}
|
||||
|
||||
public function setCors($host, $bucketName)
|
||||
{
|
||||
$obsClient = $this->obsClient;
|
||||
/*
|
||||
* Set/Get/Delete bucket cors
|
||||
*/
|
||||
$method = 'PUT';
|
||||
$content = '<CORSConfiguration><CORSRule><AllowedMethod>PUT</AllowedMethod><AllowedOrigin>'.$host.'</AllowedOrigin><AllowedHeader>header1</AllowedHeader><MaxAgeSeconds>100</MaxAgeSeconds><ExposeHeader>header2</ExposeHeader></CORSRule></CORSConfiguration>';
|
||||
$headers = ['Content-Length'=> strval(strlen($content)), 'Content-MD5' => base64_encode(md5($content, true))];
|
||||
$res = $obsClient -> createSignedUrl(['Bucket' => $bucketName, 'Method' => $method, 'SpecialParam' => 'cors', 'Headers' => $headers]);
|
||||
doAction('Set bucket cors ', $method, $res['SignedUrl'], $content, $res['ActualSignedRequestHeaders']);
|
||||
}
|
||||
|
||||
public function getCors($bucketName)
|
||||
{
|
||||
$obsClient = $this->obsClient;
|
||||
/*
|
||||
* Set/Get/Delete bucket cors
|
||||
*/
|
||||
$method = 'GET';
|
||||
$res= $obsClient -> createSignedUrl(['Bucket' => $bucketName, 'Method' => $method, 'SpecialParam' => 'cors']);
|
||||
return $res['SignedUrl'];
|
||||
$this->doAction('Get bucket cors ', $method, $res['SignedUrl']);
|
||||
}
|
||||
|
||||
public function deleteCors($bucketName)
|
||||
{
|
||||
$obsClient = $this->obsClient;
|
||||
/*
|
||||
* Set/Get/Delete bucket cors
|
||||
*/
|
||||
$method = 'DELETE';
|
||||
$res= $obsClient -> createSignedUrl(['Bucket' => $bucketName, 'Method' => $method, 'SpecialParam' => 'cors']);
|
||||
doAction('Delete bucket cors ', $method, $res['SignedUrl']);
|
||||
}
|
||||
|
||||
public function createObject($content, $bucketName)
|
||||
{
|
||||
$obsClient = $this->obsClient;
|
||||
/*
|
||||
* Create object
|
||||
*/
|
||||
$method = 'PUT';
|
||||
$headers = ['Content-Length'=> strval(strlen($content))];
|
||||
$res = $obsClient -> createSignedUrl(['Method' => $method, 'Bucket' => $bucketName, 'Key' => $objectKey, 'Headers'=> $headers]);
|
||||
doAction('Create object', $method, $res['SignedUrl'], $content, $res['ActualSignedRequestHeaders']);
|
||||
}
|
||||
|
||||
public function getObject($content, $bucketName)
|
||||
{
|
||||
$obsClient = $this->obsClient;
|
||||
/*
|
||||
* Get object
|
||||
*/
|
||||
$method = 'GET';
|
||||
$res = $obsClient -> createSignedUrl(['Method' => $method, 'Bucket' => $bucketName, 'Key' => $objectKey]);
|
||||
doAction('Get object', $method, $res['SignedUrl']);
|
||||
}
|
||||
|
||||
public function setObjectAcl($content, $bucketName)
|
||||
{
|
||||
$obsClient = $this->obsClient;
|
||||
/*
|
||||
* Set/Get object acl
|
||||
*/
|
||||
$method = 'PUT';
|
||||
$headers = ['x-amz-acl'=> ObsClient::AclPublicRead];
|
||||
$res = $obsClient -> createSignedUrl(['Method' => $method, 'Bucket' => $bucketName, 'Key' => $objectKey, 'Headers'=> $headers, 'SpecialParam' => 'acl']);
|
||||
doAction('Set object Acl', $method, $res['SignedUrl'], null, $res['ActualSignedRequestHeaders']);
|
||||
}
|
||||
|
||||
public function getObjectAcl($content, $bucketName)
|
||||
{
|
||||
$obsClient = $this->obsClient;
|
||||
/*
|
||||
* Set/Get object acl
|
||||
*/
|
||||
$method = 'GET';
|
||||
$res = $obsClient -> createSignedUrl(['Method' => $method, 'Bucket' => $bucketName, 'Key' => $objectKey, 'SpecialParam' => 'acl']);
|
||||
doAction('Get object Acl', $method, $res['SignedUrl']);
|
||||
}
|
||||
|
||||
public function deletedObject($bucketName)
|
||||
{
|
||||
$obsClient = $this->obsClient;
|
||||
/*
|
||||
* Delete object
|
||||
*/
|
||||
$method = 'DELETE';
|
||||
$res = $obsClient -> createSignedUrl(['Method' => $method, 'Bucket' => $bucketName, 'Key' => $objectKey]);
|
||||
doAction('Delete object', $method, $res['SignedUrl']);
|
||||
}
|
||||
|
||||
public function deletedBucket($bucketName)
|
||||
{
|
||||
$obsClient = $this->obsClient;
|
||||
/*
|
||||
* Delete bucket
|
||||
*/
|
||||
$method = 'DELETE';
|
||||
$res = $obsClient -> createSignedUrl(['Bucket' => $bucketName, 'Method' => $method]);
|
||||
doAction('Delete bucket', $method, $res['SignedUrl']);
|
||||
}
|
||||
|
||||
public function UploadUrl($bucketName)
|
||||
{
|
||||
$obsClient = $this->obsClient;
|
||||
/*
|
||||
* 获取文件上传签名URL
|
||||
*/
|
||||
$method = 'PUT';
|
||||
$expires = 3600; //有效期3600秒;
|
||||
$objectname = 'file';
|
||||
// $header = ['content-type' => 'text/plain'];
|
||||
$header = ['content-type' => 'multipart/form-data'];
|
||||
$res = $obsClient -> createSignedUrl(['Bucket' => $bucketName, 'Method' => $method,'Key'=>$objectname,'Expires'=>$expires]);
|
||||
return [
|
||||
'url'=>$res['SignedUrl'],
|
||||
'header'=>$res['ActualSignedRequestHeaders']
|
||||
];
|
||||
// $this->doAction('get upload url', $method, $res['SignedUrl']);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user