if ($json['over_limit'] != 0) { textarea($json); html_error('The server is overloaded, please try to upload later.'); } if (!empty($uploadHeaders)) { $uploadHeaders = array_map('iaS3HeaderEncode', $uploadHeaders); } $uploadHeaders['Authorization'] = 'LOW ' . $iaS3AccessKey . ':' . $iaS3SecretKey; $uploadReferer = $referer; foreach ($uploadHeaders as $tok => $val) { $uploadReferer .= "\r\n{$tok}: {$val}"; } // Uploading echo "<script type='text/javascript'>document.getElementById('info').style.display='none';</script>\n"; $url = parse_url('http://s3.us.archive.org/' . urlencode($_REQUEST['bucket']) . '/' . urlencode($lname)); $upfiles = putfile($url['host'], defport($url), $url['path'] . (!empty($url['query']) ? '?' . $url['query'] : ''), $uploadReferer, $cookie, $lfile, $lname, $_GET['proxy'], $pauth, 0, $url['scheme']); // Upload Finished echo "<script type='text/javascript'>document.getElementById('progressblock').style.display='none';</script>\n"; is_page($upfiles); if (intval(substr($upfiles, 9, 3)) != 200) { if (preg_match('@<Error><Code>(\\w+)</Code><Message>(?>(.*?)</Message>)@i', $upfiles, $err)) { switch ($err[1]) { case 'AccessDenied': html_error('Upload Error: Access to bucket denied, make sure that this bucket is yours.'); case 'InvalidAccessKeyId': html_error('Upload Error: Invalid AccessKey.'); case 'SignatureDoesNotMatch': html_error('Upload Error: Invalid or Incorrect SecretKey.'); case 'SlowDown': case 'ServiceUnavailable': html_error('The server is overloaded and discarted this upload, please try to upload later.');
while ($kb = fread($s, 1024)) { fwrite($f, $kb, 1024); } fclose($f); fclose($s); chmod(LOG_SUBDIR . $fname, 0666); $fname = URL_BASE . LOG_SUBDIR . $fname; header("Location: " . $fname); header("HTTP/1.1 201 Created"); echo "<html><head><title>Success</title></head><body>"; echo "<p>Created <a href=\"" . $fname . "\">" . $fname . "</a> OK.</p></body></html>"; } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- //--- main() if ($_SERVER["REQUEST_METHOD"] != "PUT") { header("HTTP/1.1 403 Bad Request"); exit; } if (!gs_get_conf("GS_POLYCOM_PROV_ALLOW_LOG_PUT")) { header("HTTP/1.1 405 Method not allowed"); exit; } $ua = trim(@$_SERVER["HTTP_USER_AGENT"]); if (!preg_match("/PolycomSoundPointIP/", $ua) && !preg_match("/PolycomSoundStationIP/", $ua)) { header("HTTP/1.1 405 Method not allowed"); exit; } putfile();