TOS 支持对存储的图片进行处理,包括图片缩放、图片裁剪、图片水印、格式转换等图片处理操作。本文介绍如何通过 TOS PHP SDK 进行基础图片处理。
以下代码展示如何将图片宽度固定为 100px,然后将图片下载到本地。
<?php // 假设使用源码安装且需要集成 SDK 的脚本与 TOS PHP SDK 的源码在同一个父目录下。 require_once __DIR__ . '/autoload.php'; use Tos\TosClient; use Tos\Exception\TosClientException; use Tos\Exception\TosServerException; use Tos\Model\HeadObjectInput; use Tos\Model\GetObjectInput; $output = null; try { $client = new TosClient([ 'region' => 'your region', 'endpoint' => 'your endpoint', // 从环境变量中获取访问密钥 'ak' => getenv('TOS_ACCESS_KEY'), 'sk' => getenv('TOS_SECRET_KEY'), ]); $input = new GetObjectInput('bucket-test', 'key-test'); // 执行图片缩放操作。 $input->setProcess('image/resize,w_100'); // 执行图片处理操作后,将处理后的图片保存至指定的存储桶。执行图片保存操作的账号必须拥有图片转存的目标桶的写权限。 // $input->setSaveBucket('bucket-test2'); // $input->setSaveObject('key-test2'); // 执行获取图片元信息操作。 // $input->setProcess('image/info'); // 执行异常图片检测操作。 // $input->setProcess('image/inspect'); $output = $client->getObject($input); echo $output->getRequestId() . PHP_EOL; // 获取图片处理后的数据。 echo $output->getContent()->getContents() . PHP_EOL; $output->getContent()->close(); } catch (TosClientException $ex) { echo $ex->getMessage() . PHP_EOL; } catch (TosServerException $ex) { echo $ex->getRequestId() . PHP_EOL; echo $ex->getStatusCode() . PHP_EOL; echo $ex->getErrorCode() . PHP_EOL; } finally { if($output){ $output->getContent()->close(); } }
关于图片处理的详细介绍,请参见图片处理概述。