アリババクラウドOSSアップロードファイルと直接ダウンロード
1. OSSSDKをインストールします
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;
}
}
ヒント:設定で
'Content-Disposition' => 'attachment'
は、ossリンクに直接アクセスして、ファイルを直接ダウンロードできます。