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

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

Однако мне не удается заставить его работать с Softlayer Object Storage. Он имеет много встроенных в обертки, один из них для облаков на основе 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.

1

Решение

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

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]