私たちのアプリケーションでは、ユーザーはサイズが 1024 X 768 (約 150 KB) の画像をアップロードできます。
ユーザーが画像をアップロードすると、次のことが起こります。
1) 一時ディレクトリにアップロードされ
た画像 2) 画像を 4 つの異なるサイズにトリミングします。
3) 元の画像とそのトリミングされた画像を Amazon s3 サーバーにアップロードします。
上記のプロセスは、ユーザーにとって時間がかかることがわかります。
xdebug でプロファイリングした後、90% の時間が amazon s3 への画像のアップロードに費やされているようです。以下の方法を使用して、画像をAmazon 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つの異なるサイズにトリミングする必要があるため、それはできません
。画像管理プロセスをスピードアップまたは改善するにはどうすればよいですか.