在我们的应用程序中,允许用户上传尺寸为 1024 X 768(约 150 KB)的图像。
当用户上传图片时,会发生以下事情:
1)图像上传到临时目录
2)将图像裁剪成四种不同的尺寸。
3)在亚马逊s3服务器上上传原始图像及其裁剪图像。
上述过程证明对用户来说是耗时的。
在使用 xdebug 进行分析后,似乎 90% 的时间都花在了在 amazon s3 上上传图像上。我正在使用下面给出的方法将图像保存在亚马逊 s3 存储桶中
public function saveInBucket( $sourceLoc,$bucketName = '', $destinationLoc = '' ) {
if( $bucketName <> '' && $destinationLoc <> '' && $sourceLoc <> '') {
$s3 = new AmazonS3();
$response = $s3->create_object( $bucketName.'.xyz.com',$destinationLoc, array(
'contentType' => 'application/force-download',
'acl' => AmazonS3::ACL_PUBLIC,
'fileUpload' => $sourceLoc
)
);
if ( ( int ) $response->isOK() ) {
return TRUE;
}
$this->ErrorMessage = 'File upload operation failed,Please try again later';
return FALSE;
}
return FALSE;
}
我也想过将图像直接上传到 amazon s3,但我不能这样做,因为我还必须将图像裁剪成 4 种不同的尺寸
如何加快或改进图像管理过程。