使用 openstack API 库 php-opencloud 连接到软层对象存储

Connecting to softlayer object storage using openstack API library php-opencloud

是否有人尝试使用 php-opencloud 库连接到软层对象存储?

当库尝试进行身份验证时,我收到 400 错误响应。

根据我在 php-opencloud 库中看到的内容,它使用 here 描述的身份验证方法,它使用 v2/token 和使用 v1.

的软层对象存储

基于相同openstack的softlayer对象存储不支持认证v2吗?

我可以使用他们提供的 sdk(softlayer-object-storage-php) 连接到对象存储,似乎使用了身份验证 v1,问题是我正在使用 laravel 5.1它具有使用 flysystem(thephpleague/flysystem) 的内置文件系统,具有使用 php-ocencloud.

的 openstack 适配器

这将非常好,并且会节省我使用驱动程序的时间,而不是我必须使用 softlayer sdk 构建自定义驱动程序并让我重新发明轮子。

我的配置在 config/filesystems.php

'rackspace' => [
        'driver'    => 'rackspace',
        'username'  => '***username from softlayer***',
        'key'       => '***api key from softlayer**',
        'container' => '***my test container***',
        'endpoint'  => 'https://sng01.objectstorage.softlayer.net/auth/v1',
        'region'    => 'sng01',
        'url_type'  => 'publicURL',
    ],

然后我尝试这样连接:

Storage::disk('rackspace')->exists('test');

错误是:

ClientErrorResponseException in BadResponseException.php line 43:
    Client error response
    [status code] 400
    [reason phrase] Bad Request
    [url] https://sng01.objectstorage.softlayer.net/auth/v1/tokens

Currenlty softlayer 只有用于验证 v1 的端点,您可以在门户中看到有效的端点(单击查看凭据 http://knowledgelayer.softlayer.com/procedure/how-do-i-access-object-storage-command-line)。

此致