一:华为OBS存储文档地址
官方文档:https://support.huaweicloud.com/obs/index.html
github地址:https://github.com/huaweicloud/huaweicloud-sdk-php-obs
二:安装华为OBS拓展
composer require obs/esdk-obs-php
三:华为OBS使用教程
1:初始化
$obsClient = new ObsClient([
'key' => 'ACCESS_KEY_ID',
'secret' => 'SECRET_ACCESS_KEY',
'endpoint' => 'endpoint地址',
]);
2:创建桶
// 创建桶
$resp = $obsClient->createBucket([
//桶名称
'Bucket' => 'bucketname',
// 设置桶访问权限为公共读,默认是私有读写
'ACL' => ObsClient::AclPublicRead,
// 设置桶的存储类型为标准存储类型
'StorageClass' => ObsClient::StorageClassStandard,
// 设置桶区域位置
'LocationConstraint' => 'bucketlocation'
]);
3:判断桶是否存在
try{
$resp = $obsClient->headBucket([
//桶名称
'Bucket' => 'bucketname'
]);
printf("Bucket exists");
}catch (\Obs\Common\ObsException $obsException){
if($obsException->getStatusCode() === 404){
printf("Bucket does not exist");
}else{
printf("ExceptionCode:%s\n", $obsException->getExceptionCode());
printf("getExceptionMessage:%s\n", $obsException->getExceptionMessage());
}
}
4:文件上传
$resp = $obsClient->putObject([
//桶名称
'Bucket' => 'bucketname',
//文件保存地址
'Key' => 'test.txt',
//上传文件地址
'SourceFile' => 'test/test.txt',
//设置上传文件访问权限(公共读),默认继承桶的访问权限
'ACL' => ObsClient::AclPublicRead
]);
5:获取上传的文件地址
$internal = false;//是否使用内网地址访问
$bucket = '存储桶名称';
$rootPath = '文件存储根目录';
if ($internal) {
$endpoint = 'Endpoint内网地址';
} else {
$endpoint = 'bucket存储对象自定义域名地址';
if ($endpoint) {
return "https://{$endpoint}/" . '存储地址';
}
$endpoint = 'Endpoint外网地址';
}
return "https://{$bucket}.{$endpoint}/" . '存储地址';
其他方法请参考官方文档