【问题标题】:php convert images and upload to amazon s3php转换图像并上传到amazon s3
【发布时间】:2010-12-31 16:47:45
【问题描述】:

在将图像上传到亚马逊 s3 服务器并从那里提供服务时,我正在寻找最佳实践。

我们需要四种不同尺寸的图片。因此,在图像上传后,我们将图像转换为 4 种不同的宽度和高度。然后我们使用官方 php api 将它们发送到 amazon 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,不如将它们添加到作业队列中。但是用户应该会立即看到上传的图片。

【问题讨论】:

    标签: php file-upload amazon-s3


    【解决方案1】:

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

    【讨论】:

    • 我们的网络服务器可以提供服务,但我们需要在 php 代码中增加一些复杂性,图像上传状态将保存在 db 中。不过,这似乎是目前唯一的解决方案。
    • 那么,您如何在服务器上处理图像,将其添加到队列数据库中,显示给用户,然后运行后台任务将其上传到 S3?
    • 是的,应该在images表中添加一个字段来检查它是否已经上传并相应地设置它的地址。
    • 谁能解释这部分过程请“添加到队列数据库”
    猜你喜欢
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 2019-09-20
    • 2011-11-10
    • 2011-04-16
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    相关资源
    最近更新 更多