2012-07-06 3 views
0

amazons3 버킷에 이미지를 업로드하고 있지만 10 개의 이미지를 2 분 실행하고 있지만 10GB 이미지를 업로드해야하므로 각 이미지 업데이트에 대한 업데이트를 받아야 작동합니다. ...아마존 s3에 이미지 업로드

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; 

답변

0

내가 사용하는 것과 거의 동일한 코드를 사용하고있는 것처럼 보입니다. 비록 동일한 스크립트를 동시에 (여러 번 병렬로) 실행함으로써 더 빠른 결과를 얻었지만, 각 테스트는 제한 될 수 있지만 동시 PUT 수에 대한 제한이 없습니다 (또는 I 아직 찾지 못했다.) 필자는 일반적으로 명령 줄에서 각각 6 번씩 스크립트를 실행합니다.

동일한 파일을 두 번 이상 업로드하지 않도록 코드를 작성하기 만하면 각 파일에 여러 요금이 부과됩니다. 따라서 데이터 소스에 세분화와 같은 것을 추가하십시오. I include 여러 스크립트로 각각 데이터베이스에서 액세스해야하는 고유 한 섹터를 지정합니다.

+0

'set_time_limit (0)'은 긴 업로드에 중요한 30/60/90 (서버 설정에 관계없이) 초 후에 스크립트가 죽지 않도록합니다. – ceejayoz

+0

아, 알 수 있듯이 제로가 아무런 제한도없는 퀴즈라는 것을 알지 못했습니다. 나는 보통'set_time_limit (2)'와 같은 것을 사용하기 때문에 무언가 (리모트 엔드 나 무한 루프의 다운 네트워크와 같은)에 붙어있는 경우에 대비하여 불완전한 것을 영원히 기다리지 않고 그냥 죽을 것이다. 내가 생각하는 것만으로도 안전 장치는 있습니다. –

관련 문제