阿里云OSS 上传文件、直接下载
1. 安装OSS SDK
composer require aliyuncs/oss-sdk-php
2. thinkPHP接口
public function uploadFile(){
if (is_file(__DIR__ . '/../autoload.php')) {
require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
require_once __DIR__ . '/../vendor/autoload.php';
}
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
$accessKeyId = "xxxxxx";
$accessKeySecret = "xxxxxx";
// Endpoint以杭州为例,其它Region请按实际情况填写。
$endpoint = "oss-accelerate.aliyuncs.com";
// 设置存储空间名称。
$bucket= "xxxxxx";
$fFiles = $_FILES['file'];
// 设置文件名称
$filename = $fFiles['name'];
$array = explode('.', $filename);
$object = $this->uuid(). '.' . array_pop($array);
// 此处设置是为了访问地址可直接下载
$options = array(
OssClient::OSS_HEADERS => array(
'Content-Disposition' => 'attachment'
)
);
try{
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
$datas = $ossClient->uploadFile($bucket, $object, $fFiles['tmp_name'], $options);
return json([
"code" => 0,
"msg" => "上传成功",
"data" => [
"src" => $datas["info"]["url"]
]
]);
} catch(OssException $e) {
//printf($e->getMessage() . "\n");
return;
}
}
Tips: 设置
'Content-Disposition' => 'attachment'
可以直接访问oss链接直接下载文件。