amazon s3 — удаление PHP League \ Flysystem завершается неудачно при использовании readStream и writeStream

Я использую League \ Flysystem для загрузки файлов на Amazon S3. После загрузки файла я хочу удалить файл с моего сервера. Сначала я использовал методы чтения и записи, а затем метод удаления, и он работал нормально. Поскольку у меня большие файлы, использование метода чтения не является хорошим решением, поскольку оно выделяет много памяти. Теперь я использую readStream и writeStream, но когда writeStream завершается, я закрываю поток и метод delete возвращает false. Я также пытался использовать unlink, но файл до сих пор не удален. Похоже, файл используется другим процессом, но я не уверен, как его выпустить. Вот пример кода:

$client = S3Client::factory([
'credentials' => [
'key'    => AWS_ACCESS_KEY,
'secret' => AWS_SECRET_KEY,
],
'region' => 'eu-west-1',
'version' => '2006-03-01',
]);

$s3 = new AwsS3Adapter($client, AWS_BUCKET);
$local = new Filesystem(new Adapter($localFolder));

$config = new Config();
$config->set("visibility", "private");

$readStream = $local->readStream($fileName);
$writeStream = $s3->writeStream($file, $readStream, $config);

if (is_resource($readStream))
{
fclose($readStream);
}

if (is_resource($writeStream))
{
fclose($writeStream);
}

$local->delete($fileName);

Я тоже попробовал это, без удачи:

$local = new Filesystem(new Adapter($localFolder), 0);

Я должен еще раз упомянуть, что при использовании методов чтения и записи удаление работало нормально.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]