我正在寻找将图像上传到亚马逊s3服务器并从那里服务的最佳做法。
我们需要四种不同尺寸的图像。因此,在图像上传后,我们将图像和比例转换为4种不同的宽度和高度。然后我们使用官方的php api将它们发送到亚马逊s3。
// ...
// 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,
));
}
但对于1M图像,客户端有时会等待30秒,这是一段很长的时间。
不是将图像立即发送到S3,而是将它们添加到作业队列可能更好。但是用户应该立即看到上传的图像。
答案 0 :(得分:0)
您可以通过对文件进行排队来实现这一目的,例如:数据库,然后运行cron作业,或者持续运行php脚本。 如果您说您希望用户立即看到图像,他们是否应该立即在S3上看到它们?