각각에 대해 다시 연결하지 않고 한 번에 여러 파일을 업로드 할 수있는 방법이 있습니까?PHP에서 Amazon S3로 여러 파일 업로드
대용량 (한 번에 100 개)의 작은 (약 10k) 이미지 파일을 저장해야하는 PHP 응용 프로그램의 저장소로 S3를 사용하고 있습니다. 현재이 코드를 통해 반복적으로이 코드를 사용하여 개별적으로 업로드하고 있습니다.
$s3->putObjectFile($uploadFile, $bucketName, ($uploadFile), S3::ACL_PUBLIC_READ)
이 작업에는 시간이 오래 걸립니다. 약 1.5MB의 파일. 다른 답변에서 제안 된 것처럼 SSL을 끄는 것은 약 40 초로 줄어들지 만 여전히 느립니다.
여기에 어떤 도움을 주셔서 감사 PHP
에 대한$s3 = new S3($awsAccessKey, $awsSecretKey, false);
function send_to_s3($s3, $bucketName, $uploadFile)
{
$start = microtime(true);
// Check if our upload file exists
if (!file_exists($uploadFile) || !is_file($uploadFile))
exit("\nERROR: No such file: $uploadFile\n\n");
// Check for CURL
if (!extension_loaded('curl') && [email protected](PHP_SHLIB_SUFFIX == 'so' ? 'curl.so' : 'php_curl.dll'))
exit("\nERROR: CURL extension not loaded\n\n");
if ($s3->putObjectFile($uploadFile, $bucketName, ($uploadFile), S3::ACL_PUBLIC_READ))
{
$end = microtime(true);
$took = $end - $start;
echo "S3::putObjectFile(): File copied to {$bucketName}/".($uploadFile).PHP_EOL . ' - ' . filesize($uploadFile) . ' in ' . $took . ' seconds<br />';
return $took;
}
else
{
print 'error';
}
}
아마존 S3 REST 구현을 사용, 내 현재 코드입니다.
공식 [PHP 용 AWS SDK (https://github.com/aws/aws-sdk-php는) 동시에 작업을 실행] (HTTP로 할 수 있습니다. co.kr/aws-sdk-php/guide/latest/feature-commands.html # execution-commands-in-parallel)을 참조하십시오. –