PHP Softlayer 对象存储上传 SSL 错误
PHP Softlayer Object Storage Upload SSL error
以为我会放弃一个问题,因为这让我很头疼
我有一个 PHP 应用程序可以将文件上传到 SoftLayer 对象存储容器中。
为了与对象存储 API 通信,我正在使用来自的 PHP 绑定
https://github.com/softlayer/softlayer-object-storage-php
并从我的 composer.json 文件
中引用它们
"softlayer/objectstorage": "dev-master",
正在检索对象容器文件和 url,一切正常。
但是我一直在上传文件时遇到问题,特别是取决于它们的大小。几天前它曾经工作,但最近由于某种原因停止工作
这是我用于上传文件的 'out-of-the-box' 代码:
$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();
}
出于某种原因,上传小于 1Mb 的文件是可行的。但是任何大于此大小的文件,->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 进行了测试,看看我是否可以将大于 1M 的文件上传到 Softlayer Storage Container。事实证明,在我的开发机器和登台服务器上使用 CURL 都成功了!
curl -i -XPUT -H "X-Auth-Token: {{MyAuthToken}}" --data-binary "@BigFile.txt" https://lon02.objectstorage.softlayer.net/v1/{{MyAuthTokenKey}}/{{MyContainer}}/BigFile.txt
你遇到过这种情况吗?我不明白为什么它突然停止工作。
有人知道吗?
感谢阅读
我无法重现您的问题,但我可以使用您的代码上传大于 2 MB 的文件。
无论如何,您遇到的问题与 SSL/OpenSSL broken 有关,请查看以下链接以获取有关它的更多信息以及如何解决它:
以为我会放弃一个问题,因为这让我很头疼
我有一个 PHP 应用程序可以将文件上传到 SoftLayer 对象存储容器中。 为了与对象存储 API 通信,我正在使用来自的 PHP 绑定 https://github.com/softlayer/softlayer-object-storage-php 并从我的 composer.json 文件
中引用它们 "softlayer/objectstorage": "dev-master",
正在检索对象容器文件和 url,一切正常。 但是我一直在上传文件时遇到问题,特别是取决于它们的大小。几天前它曾经工作,但最近由于某种原因停止工作
这是我用于上传文件的 'out-of-the-box' 代码:
$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();
}
出于某种原因,上传小于 1Mb 的文件是可行的。但是任何大于此大小的文件,->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 进行了测试,看看我是否可以将大于 1M 的文件上传到 Softlayer Storage Container。事实证明,在我的开发机器和登台服务器上使用 CURL 都成功了!
curl -i -XPUT -H "X-Auth-Token: {{MyAuthToken}}" --data-binary "@BigFile.txt" https://lon02.objectstorage.softlayer.net/v1/{{MyAuthTokenKey}}/{{MyContainer}}/BigFile.txt
你遇到过这种情况吗?我不明白为什么它突然停止工作。 有人知道吗?
感谢阅读
我无法重现您的问题,但我可以使用您的代码上传大于 2 MB 的文件。 无论如何,您遇到的问题与 SSL/OpenSSL broken 有关,请查看以下链接以获取有关它的更多信息以及如何解决它: