Загрузка файлов из моего приложения в хранилище объектов Softlayer с помощью Gaufrette

Я создаю веб-приложение, которое позволяет загружать файлы многих типов, некоторые из них очень большие. Бэкэнд построен с использованием Symfony (на самом деле v3.1, но я не думаю, что это имеет значение для проблемы), и я использую Gaufrette Пакет для взаимодействия с файловой системой. Я нашел это отличным решением, так как оно позволяет мне легко переключаться между локальным хранилищем и хранилищем облачных объектов в зависимости от типа и размера файла.

Однако мне не удается заставить его работать с хранилищем объектов Softlayer. Он имеет множество встроенных оболочек, один из них для облаков на основе OpenStack ( например, Rackspace или Softlayer), и документация кажется очень исчерпывающей, но я не могу успешно подключиться к Softlayer API.

Я пробовал как интеграцию в Symfony Bundle, так и использование библиотек непосредственно в своих классах, и ни один из них не работает, ниже последнего:

public function uploadFromUrl($url)
{
    $connection = new OpenStack(
        'https://fra02.objectstorage.softlayer.net/auth/v1.0/',
        array(
            'username' => 'myuser',
            'password' => 'mykey'
        )
    );
    dump($connection);
    $objectStore = $connection->objectStoreService('cloudFiles', 'fra02', 'publicURL');

    $adapter = new OpenCloudAdapter(
        $objectStore,
        'mycontainer'
    );

    $filesystem = new Filesystem($adapter);

    $filename = pathinfo($url, PATHINFO_FILENAME);

    $filesystem->write($filename, file_get_contents($url));
    return $filename;
}

И ошибка, которую я получаю:

Client error response
[status code] 400
[reason phrase] Bad Request
[url] https://fra02.objectstorage.softlayer.net/auth/v1.0/tokens

Я подозреваю, что проблема связана с неправильным форматированием curl, который библиотека выполняет внутри, но у меня нет возможности узнать, какие параметры она передает и соответствуют ли они API Softlayer. Я пробовал примеры OpenStack и Rackspace, показанные в документации Gaufrette, но безуспешно.


person MarcSitges    schedule 13.10.2016    source источник
comment
Вы пробовали с последними обновлениями?   -  person Don Omondi    schedule 03.03.2017
comment
Извините, неправильные документы... обновлений пока нет :( все еще v1   -  person Don Omondi    schedule 03.03.2017


Ответы (1)


Я попытался воспроизвести вашу проблему, но не смог (мне не удалось подключиться к хранилищу объектов). Во всяком случае, похоже, что проблема такая же, как и на следующем форуме (см. ниже), потому что вы используете библиотеку php opencloud:

Я бы рекомендовал использовать: PHP-клиент SoftLayer Object Storage, надеюсь, это поможет с вашими требованиями

person Ruber Cuellar Valenzuela    schedule 13.10.2016
comment
Рубер, у меня было время попробовать клиент, и он работает. Как описано в упомянутой вами ветке, проблема возникает из-за другой версии API OpenStack. Есть ли у вас планы по его обновлению? И это клиент еще в разработке, планируете ли вы сделать официальный релиз? - person MarcSitges; 21.10.2016
comment
Я рекомендую отправить билет, чтобы получить больше информации об этом - person Ruber Cuellar Valenzuela; 21.10.2016