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}/" . '存储地址';

其他方法请参考官方文档

相关推荐
多客:duokelijie34 分钟前
代练订单系统选型思路:跨品类游戏接入、订单分层管理、自动结算逻辑拆解!
数据库·mysql·微信小程序·前端框架·uni-app·php·持续部署
1-1=01 小时前
C# 委托与事件
开发语言·c#
Fuyo_11191 小时前
C++ 运行时多态与虚函数机制全面剖析【面试重点】
开发语言·c++·面试
w_zero_one2 小时前
递归算法(一)
java·开发语言·算法
Julien20043 小时前
管理机密(一)
运维·服务器·开发语言·学习方法
Chen_harmony3 小时前
七、STL与string类
开发语言·c++
沐晓时光3 小时前
C语言入门,字符串和字符串函数知识讲解
c语言·开发语言
xxxiugou1233 小时前
C++命名空间与引用全解析
开发语言·c++
yangmu32035 小时前
编程语言发展简史:从机器指令到智能协作
开发语言
从琳开始9895 小时前
网络原理入门(二)------OSI七层模型?TCP/IP五层(四层)模型原来是这样的
java·网络·tcp/ip·java-ee·php