[英]Upload Large size file to Amazon S3 fails on server
嘗試使用PHP SDK將4MB的文件上傳到S3存儲桶時遇到問題。 在我無所事事的環境中,這工作正常。 但是,當我嘗試使用EC2生產服務器時,即使我要上傳2MB大小的文件,它也會出現以下錯誤。 但是可以上傳小文件而沒有問題。 有人可以幫我嗎?
我在兩種環境下都使用nginx。
$s3 = \App::make('aws')->createClient('s3');
$name= time() . $file->getClientOriginalName();
$resp = $s3->putObject(array(
'Bucket' => 'xxxxxx',
'Key' => $folder.'/' . $name,
'ACL' => 'public-read',
'Body' => new Stream(fopen(realpath($file->getPathName()), 'r'))
));
if ($resp['@metadata']['statusCode'] == 200) {
return [
"file_path"=>$resp['ObjectURL'],
"s3_key"=>$folder.'/' . $name
];
}else{
return false;
}
在“ https://xxxxxxx.amazonaws.com/documents/1564900266slides.zip ”上執行“ PutObject”時出錯; AWS HTTP錯誤:客戶端錯誤:
PUT https://xxxxxxx.amazonaws.com/documents/1564900266slides.zip
導致400 Bad Request
響應:RequestTimeout您到服務器的套接字連接wa(被截斷了...)RequestTimeout(客戶端):您的在超時時間內未讀取或寫入與服務器的套接字連接。 空閑連接將關閉。 -RequestTimeout在超時時間內未讀取或寫入到服務器的套接字連接。
檢查nginx是否設置了諸如client_max_body_size 20M;
類的參數client_max_body_size 20M;
允許文件上傳最大20 MB。 至於PHP,您可以簽入php.ini upload_max_filesize = 20M
以匹配nginx配置。
設置完這些參數后,您必須使用sudo nginx -t檢查nginx配置,並使用sudo服務nginx reload重新加載配置以應用新設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.