Commit: 25bd6ae8dd0d4798ca20ccf94794d41c3d87f0f9
Author: Christoph M. Becker <[email protected]> Thu, 27 Feb 2020
11:38:08 +0100
Parents: a630bada1e8612cc42306f97c80396c96acb22e1
Branches: server-migration
Link:
http://git.php.net/?p=web/rmtools.git;a=commitdiff;h=25bd6ae8dd0d4798ca20ccf94794d41c3d87f0f9
Log:
Upload to two FTP servers
We are planning to migrate windows.php.net to a new server. During the
migration period, we want the uploads to go to both the current and the
new machine. We accomplish that by having an additional credentials
file (credentials_ftps2.php), and running the upload routines twice.
Changed paths:
M include/Tools.php
diff --git a/include/Tools.php b/include/Tools.php
index 7084b01..12b9f9d 100644
--- a/include/Tools.php
+++ b/include/Tools.php
@@ -127,25 +127,26 @@ function upload_file($src, $target)
function upload_file_curl($src, $target) // SAZ - Like upload_file(), but
using curl
{
- include __DIR__ . '/../data/config/credentials_ftps.php';
- $ftp_user = $user_snaps;
- $ftp_password = $password;
-
- $remoteurl = "ftps://" . urlencode($ftp_user) . ":" .
urlencode($ftp_password) . "@${ftp_server}/${target}";
- $fp = fopen($src, "rb");
-
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
- curl_setopt($ch, CURLOPT_URL, $remoteurl);
- curl_setopt($ch, CURLOPT_UPLOAD, 1);
- curl_setopt($ch, CURLOPT_INFILE, $fp);
- curl_setopt($ch, CURLOPT_USERPWD, $ftp_user . ':' . $ftp_password);
- if (curl_exec($ch) === false) {
- echo "Error, upload_file_curl(): " . curl_error($ch) . "\n";
- return false;
+ foreach (['credentials_ftps', 'credentials_ftps2'] as
$credentials_ftps) {
+ include __DIR__ . "/../data/config/$credentials_ftps.php";
+ $ftp_user = $user_snaps;
+ $ftp_password = $password;
+
+ $remoteurl = "ftps://" . urlencode($ftp_user) . ":" .
urlencode($ftp_password) . "@${ftp_server}/${target}";
+ $fp = fopen($src, "rb");
+
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
+ curl_setopt($ch, CURLOPT_URL, $remoteurl);
+ curl_setopt($ch, CURLOPT_UPLOAD, 1);
+ curl_setopt($ch, CURLOPT_INFILE, $fp);
+ curl_setopt($ch, CURLOPT_USERPWD, $ftp_user . ':' .
$ftp_password);
+ if (curl_exec($ch) === false) {
+ echo "Error, upload_file_curl(): " . curl_error($ch) .
"\n";
+ return false;
+ }
+ fclose($fp);
}
- fclose($fp);
-
return true;
}
@@ -165,100 +166,102 @@ function update_snapshot_page()
function upload_build_result_ftp_curl($src_dir, $target)
{
- include __DIR__ . '/../data/config/credentials_ftps.php';
+ foreach (['credentials_ftps', 'credentials_ftps2'] as
$credentials_ftps) {
+ include __DIR__ . "/../data/config/$credentials_ftps.php";
- $ftp = ftp_ssl_connect($ftp_server);
- if (!$ftp) {
- echo "Cannot connect to $ftp_server\n";
- return false;
- }
- $login_result = ftp_login($ftp, $user_snaps, $password);
- if (!$login_result) {
- return false;
- }
-
- $try = 0;
- do {
- $status = ftp_make_directory($ftp, $target. '/logs');
- $try++;
- } while ( $status === false && $try < 10 );
- ftp_close($ftp);
+ $ftp = ftp_ssl_connect($ftp_server);
+ if (!$ftp) {
+ echo "Cannot connect to $ftp_server\n";
+ return false;
+ }
+ $login_result = ftp_login($ftp, $user_snaps, $password);
+ if (!$login_result) {
+ return false;
+ }
+
+ $try = 0;
+ do {
+ $status = ftp_make_directory($ftp, $target. '/logs');
+ $try++;
+ } while ( $status === false && $try < 10 );
+ ftp_close($ftp);
- $curl = array();
+ $curl = array();
- $ftp_path = $target;
- $ftp_user = $user_snaps;
- $ftp_password = $password;
+ $ftp_path = $target;
+ $ftp_user = $user_snaps;
+ $ftp_password = $password;
- if ($ftp_path[0] != '/') {
- $ftp_path = '/' . $ftp_path;
- }
- $mh = \curl_multi_init();
+ if ($ftp_path[0] != '/') {
+ $ftp_path = '/' . $ftp_path;
+ }
+ $mh = \curl_multi_init();
- $files = glob($src_dir . '/*.{zip,json}', GLOB_BRACE);
- foreach ($files as $i => $local_file) {
+ $files = glob($src_dir . '/*.{zip,json}', GLOB_BRACE);
+ foreach ($files as $i => $local_file) {
- $curl[$i] = $ch = \curl_init();
- $fp = fopen($local_file, "rb");
- $local_file = basename($local_file);
+ $curl[$i] = $ch = \curl_init();
+ $fp = fopen($local_file, "rb");
+ $local_file = basename($local_file);
- $remoteurl = "ftps://" . urlencode($ftp_user) . ":" .
urlencode($ftp_password) . "@${ftp_server}${ftp_path}/${local_file}";
+ $remoteurl = "ftps://" . urlencode($ftp_user) . ":" .
urlencode($ftp_password) . "@${ftp_server}${ftp_path}/${local_file}";
- \curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
- \curl_setopt($ch, CURLOPT_URL, $remoteurl);
- \curl_setopt($ch, CURLOPT_UPLOAD, 1);
- \curl_setopt($ch, CURLOPT_INFILE, $fp);
- \curl_setopt($ch , CURLOPT_USERPWD, $ftp_user . ':' .
$ftp_password);
+ \curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
+ \curl_setopt($ch, CURLOPT_URL, $remoteurl);
+ \curl_setopt($ch, CURLOPT_UPLOAD, 1);
+ \curl_setopt($ch, CURLOPT_INFILE, $fp);
+ \curl_setopt($ch , CURLOPT_USERPWD, $ftp_user . ':' .
$ftp_password);
- \curl_multi_add_handle ($mh, $ch);
- }
+ \curl_multi_add_handle ($mh, $ch);
+ }
- $files = glob($src_dir . '/logs/*.*');
- $offset = $i + 1;
- foreach ($files as $i => $local_file) {
+ $files = glob($src_dir . '/logs/*.*');
+ $offset = $i + 1;
+ foreach ($files as $i => $local_file) {
- $ch = $curl[$offset + $i] = \curl_init();
- $fp = fopen($local_file, "rb");
- $local_file = basename($local_file);
+ $ch = $curl[$offset + $i] = \curl_init();
+ $fp = fopen($local_file, "rb");
+ $local_file = basename($local_file);
- $remoteurl = "ftps://" . urlencode($ftp_user) . ":" .
urlencode($ftp_password) . "@${ftp_server}${ftp_path}/logs/${local_file}";
+ $remoteurl = "ftps://" . urlencode($ftp_user) . ":" .
urlencode($ftp_password) . "@${ftp_server}${ftp_path}/logs/${local_file}";
- \curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
- \curl_setopt($ch, CURLOPT_URL, $remoteurl);
- \curl_setopt($ch, CURLOPT_UPLOAD, 1);
- \curl_setopt($ch, CURLOPT_INFILE, $fp);
- \curl_setopt($ch , CURLOPT_USERPWD, $ftp_user . ':' .
$ftp_password);
+ \curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
+ \curl_setopt($ch, CURLOPT_URL, $remoteurl);
+ \curl_setopt($ch, CURLOPT_UPLOAD, 1);
+ \curl_setopt($ch, CURLOPT_INFILE, $fp);
+ \curl_setopt($ch , CURLOPT_USERPWD, $ftp_user . ':' .
$ftp_password);
- \curl_multi_add_handle ($mh, $ch);
- }
+ \curl_multi_add_handle ($mh, $ch);
+ }
- $retry = 0;
- do {
- $err = 0;
+ $retry = 0;
do {
- \curl_multi_exec($mh,$active);
- $info = curl_multi_info_read($mh);
- if ($info !== false) {
- curl_multi_remove_handle($mh, $info['handle']);
- if ($info['result'] != 0) {
- $err = 1;
-// echo curl_getinfo($info['handle'],
CURLINFO_EFFECTIVE_URL) . "\n";
-// echo curl_error($info['handle']) .
"\n\n";
- curl_multi_add_handle($mh,
$info['handle']);
+ $err = 0;
+ do {
+ \curl_multi_exec($mh,$active);
+ $info = curl_multi_info_read($mh);
+ if ($info !== false) {
+ curl_multi_remove_handle($mh,
$info['handle']);
+ if ($info['result'] != 0) {
+ $err = 1;
+// echo
curl_getinfo($info['handle'], CURLINFO_EFFECTIVE_URL) . "\n";
+// echo
curl_error($info['handle']) . "\n\n";
+ curl_multi_add_handle($mh,
$info['handle']);
+ }
}
+ } while ($active);
+ $retry++;
+ } while ($err != 0 && $retry < 10);
+
+ foreach ($curl as $ch) {
+ \curl_multi_remove_handle($mh, $ch);
+ if (\curl_errno($ch) != 0) {
+ echo \curl_error($ch) . "\n";
}
- } while ($active);
- $retry++;
- } while ($err != 0 && $retry < 10);
-
- foreach ($curl as $ch) {
- \curl_multi_remove_handle($mh, $ch);
- if (\curl_errno($ch) != 0) {
- echo \curl_error($ch) . "\n";
+ \curl_close($ch);
}
- \curl_close($ch);
+ //\curl_multi_close($mh);
}
- //\curl_multi_close($mh);
return true;
}
@@ -373,101 +376,103 @@ function xmail($from, $to, $subject, $text, array
$attachment = array())
function upload_pecl_pkg_ftp_curl($files, $logs, $target)
{
- include __DIR__ . '/../data/config/credentials_ftps.php';
+ foreach (['credentials_ftps', 'credentials_ftps2'] as
$credentials_ftps) {
+ include __DIR__ . "/../data/config/$credentials_ftps.php";
- $ftp = ftp_ssl_connect($ftp_server);
- if (!$ftp) {
- echo "Cannot connect to $ftp_server\n";
- return false;
- }
- $login_result = ftp_login($ftp, $user_pecl, $password_pecl);
- if (!$login_result) {
- return false;
- }
-
- $try = 0;
- do {
- $status = ftp_make_directory($ftp, $target . '/logs/');
- $try++;
- } while ( $status === false && $try < 10 );
- ftp_close($ftp);
+ $ftp = ftp_ssl_connect($ftp_server);
+ if (!$ftp) {
+ echo "Cannot connect to $ftp_server\n";
+ return false;
+ }
+ $login_result = ftp_login($ftp, $user_pecl, $password_pecl);
+ if (!$login_result) {
+ return false;
+ }
+
+ $try = 0;
+ do {
+ $status = ftp_make_directory($ftp, $target . '/logs/');
+ $try++;
+ } while ( $status === false && $try < 10 );
+ ftp_close($ftp);
- $curl = array();
+ $curl = array();
- $ftp_path = $target;
- $ftp_user = $user_pecl;
- $ftp_password = $password_pecl;
+ $ftp_path = $target;
+ $ftp_user = $user_pecl;
+ $ftp_password = $password_pecl;
- if ($ftp_path[0] != '/') {
- $ftp_path = '/' . $ftp_path;
- }
- $mh = \curl_multi_init();
+ if ($ftp_path[0] != '/') {
+ $ftp_path = '/' . $ftp_path;
+ }
+ $mh = \curl_multi_init();
- $files = is_array($files) ? $files : array($files);
- $offset = 0;
- foreach ($files as $i => $local_file) {
+ $files = is_array($files) ? $files : array($files);
+ $offset = 0;
+ foreach ($files as $i => $local_file) {
- $curl[$i] = $ch = \curl_init();
- $fp = fopen($local_file, "rb");
- $local_file = basename($local_file);
+ $curl[$i] = $ch = \curl_init();
+ $fp = fopen($local_file, "rb");
+ $local_file = basename($local_file);
- $remoteurl = "ftps://" . urlencode($ftp_user) . ":" .
urlencode($ftp_password) . "@${ftp_server}${ftp_path}/${local_file}";
+ $remoteurl = "ftps://" . urlencode($ftp_user) . ":" .
urlencode($ftp_password) . "@${ftp_server}${ftp_path}/${local_file}";
- \curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
- \curl_setopt($ch, CURLOPT_URL, $remoteurl);
- \curl_setopt($ch, CURLOPT_UPLOAD, 1);
- \curl_setopt($ch, CURLOPT_INFILE, $fp);
- \curl_setopt($ch , CURLOPT_USERPWD, $ftp_user . ':' .
$ftp_password);
+ \curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
+ \curl_setopt($ch, CURLOPT_URL, $remoteurl);
+ \curl_setopt($ch, CURLOPT_UPLOAD, 1);
+ \curl_setopt($ch, CURLOPT_INFILE, $fp);
+ \curl_setopt($ch , CURLOPT_USERPWD, $ftp_user . ':' .
$ftp_password);
- \curl_multi_add_handle ($mh, $ch);
- $offset++;
- }
+ \curl_multi_add_handle ($mh, $ch);
+ $offset++;
+ }
- $files = is_array($logs) ? $logs : array($logs);
- foreach ($files as $i => $local_file) {
+ $files = is_array($logs) ? $logs : array($logs);
+ foreach ($files as $i => $local_file) {
- $ch = $curl[$offset + $i] = \curl_init();
- $fp = fopen($local_file, "rb");
- $local_file = basename($local_file);
+ $ch = $curl[$offset + $i] = \curl_init();
+ $fp = fopen($local_file, "rb");
+ $local_file = basename($local_file);
- $remoteurl = "ftps://" . urlencode($ftp_user) . ":" .
urlencode($ftp_password) . "@${ftp_server}${ftp_path}/logs/${local_file}";
+ $remoteurl = "ftps://" . urlencode($ftp_user) . ":" .
urlencode($ftp_password) . "@${ftp_server}${ftp_path}/logs/${local_file}";
- \curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
- \curl_setopt($ch, CURLOPT_URL, $remoteurl);
- \curl_setopt($ch, CURLOPT_UPLOAD, 1);
- \curl_setopt($ch, CURLOPT_INFILE, $fp);
- \curl_setopt($ch , CURLOPT_USERPWD, $ftp_user . ':' .
$ftp_password);
+ \curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
+ \curl_setopt($ch, CURLOPT_URL, $remoteurl);
+ \curl_setopt($ch, CURLOPT_UPLOAD, 1);
+ \curl_setopt($ch, CURLOPT_INFILE, $fp);
+ \curl_setopt($ch , CURLOPT_USERPWD, $ftp_user . ':' .
$ftp_password);
- \curl_multi_add_handle ($mh, $ch);
- }
+ \curl_multi_add_handle ($mh, $ch);
+ }
- $retry = 0;
- do {
- $err = 0;
+ $retry = 0;
do {
- \curl_multi_exec($mh,$active);
- $info = curl_multi_info_read($mh);
- if ($info !== false) {
- curl_multi_remove_handle($mh, $info['handle']);
- if ($info['result'] != 0) {
- $err = 1;
-// echo curl_getinfo($info['handle'],
CURLINFO_EFFECTIVE_URL) . "\n";
-// echo curl_error($info['handle']) .
"\n\n";
- curl_multi_add_handle($mh,
$info['handle']);
+ $err = 0;
+ do {
+ \curl_multi_exec($mh,$active);
+ $info = curl_multi_info_read($mh);
+ if ($info !== false) {
+ curl_multi_remove_handle($mh,
$info['handle']);
+ if ($info['result'] != 0) {
+ $err = 1;
+// echo
curl_getinfo($info['handle'], CURLINFO_EFFECTIVE_URL) . "\n";
+// echo
curl_error($info['handle']) . "\n\n";
+ curl_multi_add_handle($mh,
$info['handle']);
+ }
}
+ } while ($active);
+ $retry++;
+ } while ($err != 0 && $retry < 10);
+
+ foreach ($curl as $ch) {
+ \curl_multi_remove_handle($mh, $ch);
+ if (\curl_errno($ch) != 0) {
+ echo \curl_error($ch) . "\n";
}
- } while ($active);
- $retry++;
- } while ($err != 0 && $retry < 10);
-
- foreach ($curl as $ch) {
- \curl_multi_remove_handle($mh, $ch);
- if (\curl_errno($ch) != 0) {
- echo \curl_error($ch) . "\n";
+ \curl_close($ch);
}
- \curl_close($ch);
+ //\curl_multi_close($mh);
}
- //\curl_multi_close($mh);
return true;
}
--
PHP Webmaster List Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php