PHP实现阿里OSS对象存储

一:阿里OSS文档地址

官方文档:https://help.aliyun.com/zh/oss/

github地址:https://github.com/aliyun/aliyun-oss-php-sdk

二:安装阿里OSS拓展

composer require aliyuncs/oss-sdk-php

三:阿里OSS使用教程

1:初始化

try {
    $ossClient = new OssClient('access_key_id', 'access_key_secret', 'internal_endpoint【Endpoint内网地址,不设置时直接使用endpoint外网地址】');
} catch (OssException $e) {
    return $e->getMessage();
}

2:创建存储空间

$ossClient->createBucket('bucket【存储空间名称】')

3:判断存储空间是否存在

$ossClient->doesBucketExist('bucket【存储空间名称】')

4:文件上传

try{
    $bucket= "bucket";//存储空间名称
    // 填写Object完整路径,例如exampledir/exampleobject.txt。Object完整路径中不能包含Bucket名称。
    $object = "exampledir/exampleobject.txt";
    // 填写本地文件的完整路径,例如D:\\localpath\\examplefile.txt。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件。
    $filePath = "D:\\localpath\\examplefile.txt";
    $ossClient->uploadFile($bucket, $object, $filePath);
} catch(OssException $e) {
    return $e->getMessage();
}

5:获取上传的文件地址

$internal = false;//是否使用内网地址访问
$bucket = '存储对象名称';
$rootPath = '文件存储根目录(当有多个项目使用同一个bucket时,以此将不同项目的文件进行隔离存储)';
if ($internal) {
    $endpoint = 'Endpoint内网地址';
} else {
    $endpoint = 'bucket存储对象自定义域名地址';
    if ($endpoint) {
        return "https://{$endpoint}/" . '存储地址';
    }
    $endpoint = 'Endpoint外网地址';
}

return "https://{$bucket}.{$endpoint}/" . '存储地址';

其他方法请参考官方文档

相关推荐
Code out the future2 分钟前
【C++——临时对象,const T&】
开发语言·c++
taoyong0016 分钟前
Java线程核心01-中断线程的理论原理
java·开发语言
一雨方知深秋7 分钟前
智慧商城:封装getters实现动态统计 + 全选反选功能
开发语言·javascript·vue2·foreach·find·every
海威的技术博客9 分钟前
关于JS中的this指向问题
开发语言·javascript·ecmascript
froginwe1135 分钟前
PostgreSQL表达式的类型
开发语言
委婉待续38 分钟前
java抽奖系统(八)
java·开发语言·状态模式
deja vu水中芭蕾40 分钟前
嵌入式C面试
c语言·开发语言
爱码小白41 分钟前
PyQt5 学习方法之悟道
开发语言·qt·学习方法
西猫雷婶1 小时前
python学opencv|读取图像(十六)修改HSV图像HSV值
开发语言·python·opencv
weixin_537590451 小时前
《Java编程入门官方教程》第八章练习答案
java·开发语言·servlet