Я ищу лучшую практику при загрузке изображений на сервер amazon s3 и их обслуживании оттуда.
Нам нужно четыре разных размера изображения. Так что сразу после загрузки изображения мы конвертируем изображение и масштабируем в 4 различных ширины и высоты. И затем мы отправляем их на Amazon S3, используя официальный PHP API.
// ...
// image conversions, bucket setting, s3 initialization etc.
$sizes= array("", "48", "64", "128");
foreach($sizes as $size) {
$filename = $upload_path.$dest_file.$size.$ext;
$s3->batch()->create_object($bucket, , array(
'fileUpload' => $filename,
'acl' => AmazonS3::ACL_PUBLIC,
));
}
Но для 1М изображения клиент иногда ждет до 30 секунд, что очень долго.
Вместо немедленной отправки изображений на S3, может быть, лучше добавить их в очередь заданий. Но пользователь должен увидеть загруженное изображение немедленно.