Я думаю, что предлагаемое предложение неплохо, вы можете SCP-файл в S3 Bucket. Предоставление файла pem будет менее аутентифицированным с помощью пароля, через PHP-файл вы можете проверить расширения. Файл PHP может передать файл в качестве аргумента команде SCP.
Единственная проблема с этим решением заключается в том, что вы должны иметь свой экземпляр в AWS. Вы не можете использовать это решение, если ваш веб-сайт размещен в других провайдерах хостинга, и вы пытаетесь загрузить файлы прямо в S3 Bucket.
Я, честно говоря, не смог составить рабочий относительный формат для strtotime () , который был бы элегантным однострочником, о котором мы все мечтаем, поэтому я написал петля бедняка:
/**
* @param int $month
* @param int $day
* @param int $reference Unix time, defaults to today
* @return int Unix time
*/
function nextOcurrence($month, $day, $reference = null)
{
if ($reference === null) {
$reference = mktime(0, 0, 0);
}
$year = date('Y', $reference);
while (!checkdate($month, $day, $year) || ($date = mktime(0, 0, 0, $month, $day, $year)) <= $reference){
$year++;
}
return $date;
}
Основные моменты:
Демо .
Вы можете просто проверить, больше ли ваша дата, чем сегодня, и сохранить ее или увеличить на один год.
function nextDate($day, $month){
$dateObj = DateTime::createFromFormat('m-d', $month.'-'.$day);
$today = new \DateTime();
if($dateObj > $today){
return $dateObj;
}
return $dateObj->modify('+ 1 year');
}