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の数に制限はありません(またはまだ見つかっていません)。通常、コマンドラインからスクリプトを 6 回ずつ実行します。

同じファイルを複数回アップロードしないようにコードを記述するだけで済みます。そうしないと、ファイルごとに複数の料金が発生します (そのため、データソースにセグメンテーションのようなものを追加してください)。includeデータベースからアクセスする必要がある一意のセクターをそれぞれ指定するいくつかのスクリプトでそれを行います。

于 2012-07-06T15:46:53.543 に答える