У меня проблема с передачей файла CSV с моего общего хостинга на AWS S3 bucket с помощью скрипта PHP с использованием cpanel cronjob. Процесс работает нормально, когда скрипт вызывается вручную. Но когда cronjobs запускает CSV-файл, он содержит только 1 строку!
В этой части я создаю CSV
$fp = fopen("Sample.csv", 'w');
foreach ($csvFileData as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
И вот как я пытаюсь поместить CSV в S3 bucket:
$s3 = new Aws\S3\S3Client([
'version' => 'latest',
'region' => 'ap-south-1',
'credentials' => [
'key' => "XXX",
'secret' => "XXX"
]
]);
$key = "Sample.csv";
$bucket = 'Sample';
$result = $s3->putObject([
'Bucket' => $bucket,
'Key' => $key,
'Body' => 'this is the body!',
'SourceFile' => "Sample.csv"
]);
Несмотря на то, что CSV имеет 30 строк, когда я планирую его через cronjob, он выдвигает CSV только с 1 строкой, но работает нормально, если я вручную запускаю сценарий PHP. Кто-нибудь может помочь?
Я только что узнал, что Cronjob имеет некоторые ограничения при запуске исполняемого файла AWS и требует наличия PATH перед командой cron, но я не понимаю, что это за патч. Я использую AWS SDK так:
require 'awsSDK/aws-autoloader.php';
use Aws\S3\S3Client;
use Aws\Exception\AwsException;