使用 AWS PHP SDK 访问 Swisscom S3 服务

Access to Swisscom S3 Service with AWS PHP SDK

我正在尝试将本地计算机上的 PHP 脚本 运行 连接到 Swisscom S3 存储 Space。该脚本使用亚马逊的 S3 服务运行良好。

我是这样连接的:

static::$s3->client = \Aws\S3\S3Client::factory(array(
    'credentials' => array(
        'key'     => ['s3_aws_key'],
        'secret'  => ['s3_aws_secret'],
    ),
    'region'      => ['s3_aws_region'],
    'endpoint'    => ['s3_aws_endpoint'],
    'version'     => "2006-03-01",
    'signature'   => "v2"
));

我遇到以下异常:

在 OSX 10.11.5、PHP 5.5.34 和 libcurl/7.43.0

"type": "Aws\S3\Exception\S3Exception",
"code": 0,
"message": "Error executing "PutObject" on "https://ds31s3.swisscom.com/***/***/***.jpg"; AWS HTTP error: cURL error 56: SSLRead() return error -9806 (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)"

在 Amazon EC2 实例上,例外情况不同:

"type": "Aws\S3\Exception\S3Exception",
"code": 0,
"message": "Error executing "PutObject" on "https://ds31s3.swisscom.com/***/***/***.jpg"; AWS HTTP error: cURL error 56: TCP connection reset by peer (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)"  

我应该看哪个方向有什么提示吗?正如我所说,运行 Amazon 的脚本运行完美。

好的 - 发现:

将 SDK 从 3.1.X 降级到 2.8.X 解决了问题。