waitUntilObjectExists () Amazon S3 PHP SDK метод, как он работает?

Будет ли функция приостанавливать скрипт php до тех пор, пока не найдет объект на серверах s3?

У меня есть внутри цикла foreach, загружая изображения один за другим. После того, как объект найден, я вызываю метод для удаления изображения локально, а затем удаляю локальную папку, если она пуста. Это правильный способ обойти это? благодаря

foreach ($fileNames as $fileName) { $imgSize = getimagesize($folderPath . $fileName); $width = (string)$imgSize[0]; $height = (string)$imgSize[1]; //upload the images $result = $S3->putObject(array( 'ACL' => 'public-read', 'Bucket' => $bucket, 'Key' => $keyPrefix . $fileName, 'SourceFile' => $folderPath . $fileName, 'Metadata' => array( 'w' => $width, 'h' => $height ) )); $S3->waitUntilObjectExists(array( 'Bucket' => $bucket, 'Key' => $keyPrefix . $fileName)); $this->deleteStoreDirectory($folderPath, $fileName); } 

waitUntilObjectExists – это в основном официант, который периодически проверяет (опросы) S3 с определенными временными интервалами, чтобы узнать, доступен ли ресурс. Выполнение скрипта блокируется до тех пор, пока ресурс не будет найден или не будет достигнуто максимальное количество попыток.

Как указано в документах AWS:

Официанты помогают упростить работу со стабильными системами, предоставляя простой способ подождать, пока ресурс войдет в конкретное состояние, опросив ресурс.

По умолчанию официант waitUntilObjectExists настроен на попытку найти ресурс 20 раз с задержкой в ​​5 секунд между каждой попыткой. Вы можете переопределить эти значения по умолчанию своими желаемыми, передав дополнительные параметры методу waitUntilObjectExists .

Если официант не может найти ресурс после максимального количества попыток, он выдает исключение.

Вы можете узнать больше о официантах:

http://docs.aws.amazon.com/aws-sdk-php-2/guide/latest/feature-waiters.html

Для вашего случая использования, я не думаю, что имеет смысл вызвать waitUntilObjectExists после того, как вы загрузили объект, если только тот же PHP-скрипт не попытается извлечь тот же объект из S3 позже в коде.

Если putObject API возвратил успешный ответ, тогда объект в конечном итоге появится в S3, и вам не обязательно ждать, пока это произойдет, прежде чем удалять локальные файлы.