2016-05-06 15 views
0

dachte, ich würde eine Frage fallen, da dies wird mir eine richtige KopfzerbrechenPHP Softlayer Object Storage hochladen SSL-Fehler

ich eine PHP-Anwendung, die Dateien in Softlayer Object Storage Container uploads. mit der Object-Storage-API kommunizieren ich die PHP-Bindungen von https://github.com/softlayer/softlayer-object-storage-php bin mit und verwiesen sie von meiner composer.json Datei

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

Containerobjekt Abrufen von Dateien und URLs arbeitet alles in Ordnung. Aber ich habe immer Probleme mit dem Hochladen von Dateien, speziell abhängig von ihrer Größe. Früher war es vor wenigen Tagen arbeiten, aber aus irgendeinem Grund nicht mehr funktioniert kürzlich

Hier ist die ‚out-of-the-box‘ Code, den ich für das Hochladen von Dateien bin mit:

$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(); 
} 

Aus irgendeinem Grund das Hochladen Eine Datei unter 1 MB funktioniert. Aber jede Datei mit einer Größe größer als diese, die -> create() Anforderung schließlich abläuft, wird keine Ausnahme ausgelöst, und ich erhalte diese Fehler im Log:

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) 

Da diese Bindungen im Wesentlichen ein Wrapper rund sind curl, ich habe dann mit CURL selbst getestet, ob ich eine Datei größer als 1M auf den Softlayer Storage Container hochladen kann. Es stellt sich heraus, dass es gelungen ist, CURL sowohl auf meinem Dev-Rechner als auch auf meinem Staging-Server zu verwenden!

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

Sind Sie schon einmal darauf gestoßen? Ich verstehe nicht, warum es plötzlich aufgehört hat zu arbeiten. Hat jemand eine Idee?

Vielen Dank für das Lesen

Antwort

1

ich Ihre Frage nicht in der Lage war, zu reproduzieren, konnte ich zum Hochladen von Dateien größer als 2 MB Ihren Code. Wie auch immer, das Problem, das Sie haben, ist auf SSL verwendet/OpenSSL gebrochen, nimmt eine auf die folgenden Links, um Sie nach mehr Informationen über sie zu erhalten und wie es zu lösen: