0

我正在将图像上传到 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;
4

1 回答 1

0

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

您只需要编写代码以确保它不会多次上传同一个文件,否则您将为每个文件产生多次费用(因此向您的数据源添加诸如分段之类的内容)。我include在几个脚本中使用它,每个脚本都指定了它应该从数据库访问的唯一扇区。

于 2012-07-06T15:46:53.543 回答