POSTリクエストを使用して、curl(php)を含む大きなファイルをAmazons3にアップロードしています。
ファイルが小さい場合(数MB)-動作します。ファイルが数百MBの場合、スクリプトはそのcurl_exec
行でエラー500で終了します(ログをその直前と直後に配置したため、正確にわかります)。
カールの初期化は次のようになります
$postdata = array_merge( $headers_array , array('file' => '@' . $filename));
$curl_handle = curl_init();
curl_setopt( $curl_handle , CURLOPT_URL , $s3_url );
curl_setopt( $curl_handle , CURLOPT_RETURNTRANSFER , 1 );
curl_setopt( $curl_handle , CURLOPT_POST , TRUE );
curl_setopt( $curl_handle , CURLOPT_HEADER , FALSE );
curl_setopt ($curl_handle , CURLOPT_POSTFIELDS, $postdata);
$response = curl_exec( $curl_handle );
`500 here`
問題はメモリ不足(または同様のもの)であると思います。ホスティングプロバイダーにerror_logを表示するように要求しましたが、今できることがあるかもしれません。
大いに感謝する!