要用php安全上传下载阿里云oss文件,必须完成sdk接入、凭证配置、客户端初始化三步;再通过uploadfile或putobject上传,downloadfile下载,deleteobject删除。

要用PHP把本地文件安全上传到阿里云OSS并能随时下载回来,必须先完成SDK接入、凭证配置、客户端初始化三步基础动作,缺一不可。
安装与引入OSS SDK
在项目根目录执行命令安装官方SDK:composer require aliyuncs/oss-sdk-php。
安装完成后,在PHP文件顶部用require_once引入自动加载器,路径要写对——如果SDK放在vendor目录下,就用require_once 'vendor/autoload.php';;如果手动解压到aliyun-oss-php-sdk目录,则改用require_once 'aliyun-oss-php-sdk/autoload.php';。
这一步漏掉或路径错一个字符,后面所有操作都会报Class 'OSS\OssClient' not found错误。
配置访问凭证与实例化客户端
从阿里云控制台的【AccessKey管理】页面创建RAM子账号(【严禁直接使用主账号AK】),获取AccessKeyId、AccessKeySecret和对应地域的Endpoint(例如杭州是https://oss-cn-hangzhou.aliyuncs.com)。
将这三个值赋给变量,再传入OssClient构造函数:
$accessKeyId = 'your_access_key_id';<br>$accessKeySecret = 'your_access_key_secret';<br>$endpoint = 'https://oss-cn-hangzhou.aliyuncs.com';<br>$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
注意:Endpoint必须带https://前缀,否则连接会超时;若用http://且Bucket开启HTTPS强制跳转,请求将被拒绝。
上传文件到指定Bucket
方法一:上传本地磁盘文件(推荐用于小文件)
调用uploadFile,一次性把完整路径交给SDK处理:
$bucket = 'my-bucket-name';<br>$object = 'uploads/photo.jpg'; // OSS中保存的路径+文件名<br>$filePath = '/var/www/uploads/photo.jpg'; // 服务器本地绝对路径<br>$ossClient->uploadFile($bucket, $object, $filePath);
方法二:上传内存流(适合表单上传或生成后立即上传)
先读取文件内容为字符串,再用putObject:
$content = file_get_contents($_FILES['file']['tmp_name']);<br>$ossClient->putObject($bucket, 'temp/'.$_FILES['file']['name'], $content);
⚠️注意:putObject不校验文件大小上限,超大文件易触发内存溢出;uploadFile底层走分片上传,更稳。
下载文件到本地
第一步:确认目标文件在OSS中存在且可读(ACL不是私有,或已授权当前AK)。
第二步:调用downloadFile,指定Bucket、Object路径和本地保存路径:
$bucket = 'my-bucket-name';<br>$object = 'uploads/photo.jpg';<br>$localFile = '/tmp/downloaded_photo.jpg';<br>$ossClient->downloadFile($bucket, $object, $localFile);
这一步执行完,/tmp/downloaded_photo.jpg就真实存在于服务器上了,后续可用readfile()输出或move_uploaded_file()转移。
删除OSS中的文件
直接调用deleteObject即可移除指定Object:
$ossClient->deleteObject($bucket, 'uploads/photo.jpg');
该操作不可逆,没有回收站,执行即删。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











