php转换图像并上传到AmazonS3

php转换图像并上传到AmazonS3,php,file-upload,amazon-s3,Php,File Upload,Amazon S3,我正在寻找一个最佳做法,同时上传图像到亚马逊s3服务器,并从那里服务 我们需要四种不同大小的图像。因此,在上传图像后,我们将图像和比例转换为4种不同的宽度和高度。然后我们使用官方的PHPAPI将它们发送到AmazonS3 // ... // image conversions, bucket setting, s3 initialization etc. $sizes= array("", "48", "64", "128"); foreach($sizes as $size) {

我正在寻找一个最佳做法,同时上传图像到亚马逊s3服务器,并从那里服务

我们需要四种不同大小的图像。因此,在上传图像后,我们将图像和比例转换为4种不同的宽度和高度。然后我们使用官方的PHPAPI将它们发送到AmazonS3

// ...
// 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,不如将它们添加到作业队列中。但是用户应该立即看到上传的图像。

您可以通过将文件排队来实现这一点,例如:数据库,然后运行cron作业,或者有一个持续运行的php脚本。
如果您说希望用户立即看到图像,那么他们是否应该立即在S3上看到它们?

我们的Web服务器可以提供服务,但我们需要更复杂的php代码,图像上载状态将保留在db中。不过,这似乎是目前唯一的解决方案。那么,您如何在服务器上处理映像,将其添加到队列数据库,向用户显示,然后运行后台任务将其上载到S3?是的,应在images表中添加一个字段,以检查该字段是否已上载,并相应地设置其地址。是否有人可以解释此过程的这一部分,请将其添加到队列数据库中