1、通过链接下载文件自定义文件名
往oss中上传数据时,为了提高效率我们一般以随机字符串为文件名,但当我们需要下载这些文件时,希望以规范的中文命名下载文件。有两种方式
第一种:上传文件时,就设置好文件头,指定文件的下载名称
$option = array(
OssClient::OSS_HEADERS => array(
'Content-Disposition' => 'attachment; filename="我的文件名,带后缀"'
)
);
$this->ossClient->uploadFile($this->bucket, $object, $filePath,$option);
第二种:上传文件后,或者下载文件前,设置文件头
$options = array(
OssClient::OSS_HEADERS => array(
'Content-Disposition' => 'attachment; filename="我的文件名,带后缀"',
// 指定设置目标Object元信息的方式,此处以指定为'REPLACE'为例,表示忽略源Object的元数据,直接采用请求中指定的元数据。若设置为COPY,表示复制源Object的元数据到目标Object。
'x-oss-metadata-directive' => 'REPLACE',
));
try{
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
$ossClient->copyObject($fromBucket, $fromObject, $toBucket, $toObject, $copyOptions);
} catch(OssException $e) {
printf(__FUNCTION__ . ": FAILED\n");
printf($e->getMessage() . "\n");
return;
}