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

其他方法请参考官方文档

相关推荐
我不会编程55515 小时前
Python Cookbook-5.1 对字典排序
开发语言·数据结构·python
李少兄15 小时前
Unirest:优雅的Java HTTP客户端库
java·开发语言·http
无名之逆15 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
似水এ᭄往昔15 小时前
【C语言】文件操作
c语言·开发语言
啊喜拔牙15 小时前
1. hadoop 集群的常用命令
java·大数据·开发语言·python·scala
xixixin_16 小时前
为什么 js 对象中引用本地图片需要写 require 或 import
开发语言·前端·javascript
W_chuanqi16 小时前
安装 Microsoft Visual C++ Build Tools
开发语言·c++·microsoft
anlogic16 小时前
Java基础 4.3
java·开发语言
A旧城以西16 小时前
数据结构(JAVA)单向,双向链表
java·开发语言·数据结构·学习·链表·intellij-idea·idea
Liudef0616 小时前
deepseek v3-0324实现SVG 编辑器
开发语言·javascript·编辑器·deepseek