2017-03-17 1 views
1

AWS PHP SDK의 아래 코드를 사용하여 파일을 버킷에 업로드 할 수있었습니다. 문제는 내가 15 메가 바이트보다 큰 파일을 업로드하려고 할 때 스크립트가 오류를 던집니다. 그렇지 않으면 예상대로 작동합니다. 어떤 생각을 잘못하고있는거야? 미리 감사드립니다.AWS PHP 업로드가 15MB보다 큰 파일을 업로드 할 수 없습니다.

require $dir . 'aws/aws-autoloader.php'; 
    $s3Client = new Aws\S3\S3Client(array(
    'version' => 'latest', 
    'region' => 'us-west-2', 
    'credentials' => array(
     'key' => 'KEY', 
     'secret' => 'SECRET', 
    ) 
)); 
$result = $s3Client->putObject(array(
    'Bucket' => 'eot-resources', 
    'Key' => $org_id."_".$_FILES["fileToUpload"]["name"], 
    'SourceFile' => $_FILES["fileToUpload"]["tmp_name"], 
    'Body'  => new GuzzleHttp\Psr7\Stream(fopen($_FILES["fileToUpload"]["tmp_name"], 'r')), 
    'ACL' => 'public-read', 
    'StorageClass' => 'REDUCED_REDUNDANCY', 
    'Metadata' => array(
     'Foo' => 'abc', 
     'Baz' => '123' 
    ) 
)); 
echo "URL: ".$result['ObjectURL'] . "<br>"; 

15MB보다 큰 대용량 파일을 업로드하려고 할 때 다음 오류가 발생합니다. 그것 이외에 그것은 작동합니다.

경고 :()는 fopen : 파일 이름은 37

라인 (37)가 읽어 줄에 /Users/xxx/Code/xxx/wp-content/plugins/xxx/parts/part-upload_file.php에 비워 둘 수 없습니다 ..

'Body'  => new GuzzleHttp\Psr7\Stream(fopen($_FILES["fileToUpload"]["tmp_name"], 'r')), 

어떤 도움/조언이나 팁을 주시면 감사하겠습니다.

+0

나는 또한 PHP multipart 업 로더와 자바 스크립트 클라이언트 측 업 로더를 시도했으며 동일한 결과를 얻었다. 파일이 10-15MB를 초과하면 오류가 발생하거나 시간이 초과됩니다. 도움!! –

+0

이것 좀보세요 : http://stackoverflow.com/questions/2184513/php-change-the-maximum-upload-file-size – sowi

답변

0

서버에 업로드 할 수있는 파일의 크기에 제한이 있다고 생각됩니다. phpinfo()를 사용하여 확인하고 post_max_size 및 upload_max_filesize를 찾습니다. 그것이 문제라고 가정하면 한계를 높일 수 있습니다.

+0

위의 코드 덕분에 성공한 네, 그렇지만 여전히 멀티 파트 업 로더의 작업을 deosnt 할 수 있습니다. javascript sdk –

+0

javascript SDK의 경우 ETag를 추가해야합니다. –