我的任务是根据一组业务规则调整大小并可能旋转存储在S3存储桶中的图像。
以下功能能够检索和回显对象键:
public function retrieveObjects($orderNumber)
{
try {
$objects = $this->s3Client->listObjects([
'Bucket' => 'designproofs',
'Prefix' => $this->path . $orderNumber . '/'
]);
if(is_array($objects['Contents'])) {
foreach ($objects['Contents'] as $object) {
$result = $this->s3Client->getObject([
'Bucket' => 'designproofs',
'Key' => $object['Key'],
]);
echo $object['Key'] . "<br>";
}
}
else{
echo $objects['Key'] . "<br>";
echo $result['Body'] . "<br>";
}
} catch (S3Exception $e) {
echo $e->getMessage() . PHP_EOL;
}
}
$result['Body']
似乎是二进制图像数据-尽管我不确定。
我可以将这些图像存储在变量中并进行操作,而无需将文件写入物理介质(HDD等)吗?
*编辑*
可以通过以下方式轻松存储图像:
$result = $this->s3Client->getObject([
'Bucket' => 'easyflow-designproofs',
'Key' => $object['Key'],
'SaveAs' => 'upload/temp_images/' . $fileName
]);