Ошибка SSL при загрузке хранилища объектов PHP Softlayer

Решил оставить вопрос, а то у меня голова болит

У меня есть приложение PHP, которое загружает файлы в контейнеры хранилища объектов SoftLayer. Для связи с API Object Storage я использую привязки PHP с https://github.com/softlayer/softlayer-object-storage-php и сослался на них из моего файла composer.json

    "softlayer/objectstorage": "dev-master",

Получение файлов контейнеров объектов и URL-адресов работает нормально. Но у меня продолжают возникать проблемы с загрузкой файлов, особенно в зависимости от их размера. Он работал пару дней назад, но по какой-то причине перестал работать недавно

Вот готовый код, который я использую для загрузки файлов:

$options = array('adapter' => ObjectStorage_Http_Client::SOCKET, 'timeout' => 10);
$objStorage = new ObjectStorage('', '', '', $options);

try {
   $newFile = $objStorage->with('RemoteFilePath')
                   ->setLocalFile($PathTolocalFile)
                   ->create();

   return $newFile->getUrl();
}
catch (Exception $e) {
   return $e->getMessage();
}

По какой-то причине загрузка файла размером менее 1 Мб работает. Но любой файл с размером больше этого, запрос ->create() в конечном итоге истекает, исключение не выдается, и я продолжаю получать эту ошибку в своем журнале:

xxx.xxx.xxx.xx - [05/06/16 03:47:02] Warning: fwrite(): SSL operation failed with code 1. OpenSSL Error messages:
error:1409F07F:SSL routines:SSL3_WRITE_PENDING:bad write retry (/var/www/vendor/softlayer/objectstorage/lib/ObjectStorage/Http/Adapter/Socket.php:132)

Поскольку эти привязки, по сути, представляют собой круглые завитки-оболочки, я затем протестировал CURL самостоятельно, чтобы посмотреть, смогу ли я загрузить файл размером более 1 МБ в контейнер хранения Softlayer. Оказывается, мне удалось использовать CURL как на моей машине разработки, так и на промежуточном сервере!

curl -i -XPUT -H "X-Auth-Token: {{MyAuthToken}}" --data-binary "@BigFile.txt" https://lon02.objectstorage.softlayer.net/v1/{{MyAuthTokenKey}}/{{MyContainer}}/BigFile.txt

Вы когда-нибудь сталкивались с этим? Я не понимаю, почему он вдруг перестал работать. Кто-нибудь знает?

Спасибо за прочтение


person SammyDev    schedule 06.05.2016    source источник


Ответы (1)


Мне не удалось воспроизвести вашу проблему, я смог загрузить файлы размером более 2 МБ, используя ваш код. В любом случае, проблема, с которой вы столкнулись, связана с нарушением работы SSL/OpenSSL, просмотрите следующие ссылки, чтобы получить дополнительную информацию об этом и о том, как его решить:

person Ruber Cuellar Valenzuela    schedule 06.05.2016