2017-03-17 147 views
1

我已經能夠使用AWS PHP SDK中的以下代碼將文件上傳到我的存儲桶。問題是,當我嘗試上傳大於15 MB的文件時,該腳本會引發錯誤。否則,它按預期工作。任何想法我做錯了什麼?提前致謝。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()函數:文件名不能在/Users/xxx/Code/xxx/wp-content/plugins/xxx/parts/part-upload_file.php是空的上線路37

第37行讀出..

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

任何幫助/意見/提示,將不勝感激。

+0

我也試過了php multipart上傳器和Javascript客戶端的上傳器,我得到了相同的結果。當文件超過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

是的,與上面的代碼感謝,但它仍然工作的多部分上傳和javascript sdk –

+0

對於JavaScript SDK,請確保將 ETag添加到