将图像上传到亚马逊s3

时间:2012-07-06 15:40:27

标签: php amazon-s3

我正在将图像上传到amazons3存储桶,但是对于10张图像需要2分钟执行,但我必须上传10GB图像,我应该收到每个图像更新的更新,确保其工作....

  while($file=readdir($handle)):
            if(is_file($file)){
                $extn = explode('.',$file);
                $extn = array_pop($extn);
                if (in_array(strtolower($extn),$includedExtn)) {
                    set_time_limit(0);
                    if ($s3->putObjectFile($file, $bucketName, baseName($file), S3::ACL_PUBLIC_READ)) {
                        echo "<br/>";
                        echo "S3::putObjectFile(): File copied to {$bucketName}/".baseName($file);
                    } else {
                        echo "S3::putObjectFile(): Failed to copy file\n";
                    }
                }
            } else {
                echo "No more files left";
            }
    endwhile;

1 个答案:

答案 0 :(得分:0)

看起来你使用的代码与我使用的代码非常相似。虽然我通过同时运行相同的脚本(并行几次)获得了更快的结果,但我有同样的速度问题,看起来每个放置可能是有限的,但对并发PUT的数量没有限制(或者如果有我尚未找到它)。我通常从命令行运行脚本6次。

您只需要编写代码以确保它不会多次上传同一个文件,或者您将为每个文件收取多笔费用(因此请为您的数据源添加分段内容)。我include在几个脚本中,每个脚本指定一个应该从数据库访问的唯一扇区。