簡體   English   中英

在服務器上將大文件上傳到Amazon S3失敗

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM