2016-10-13 3 views
1

많은 종류의 파일을 업로드 할 수있는 웹 애플리케이션을 만들고 있습니다. 그 중 일부는 매우 큰 파일입니다. 백엔드는 Symfony (사실 v3.1을 사용하여 제작되었지만이 문제에 대해서는 중요하지 않다고 생각합니다)와 Gaufrette 번들을 사용하여 파일 시스템과 상호 작용합니다. 파일 형식 및 크기에 따라 로컬 저장소와 클라우드 개체 저장소간에 쉽게 전환 할 수 있으므로 훌륭한 솔루션을 발견했습니다.Gaufrette를 사용하여 내 앱에서 Softlayer의 Object Storage로 파일 업로드하기

그러나 Softlayer Object Storage로는 작동하지 않습니다. OpenStack 기반 클라우드 (예 : Rackspace 또는 Softlayer)의 래퍼가 one of them이며 문서가 매우 포괄적으로 보이지만 Softlayer API에 연결할 수 없습니다.

나는 심포니 번들 내에서 모두 통합을 시도하고 내 수업에 직접 라이브러리를 사용하고 그들 중 누구도 후자 아래 작동되지 않은 :

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 

문제는 라이브러리가 내부적으로 수행하는 컬링의 잘못된 형식과 관련이 있다고 생각합니다. 그러나 전달되는 매개 변수와 Softlayer API와 일치하는지 여부를 알아낼 방법이 없습니다. Gaufrette 문서에 행운과 함께 OpenStack과 Rackspace 예제를 모두 표시하려고 시도했습니다.

+0

최근 업데이트를 사용해 보셨습니까? –

+0

죄송합니다. 문서가 잘못되었습니다 ... 아직 업데이트가 없습니다. (여전히 v1을 사용하고 있습니다. –

답변

0

문제점을 재현하려고했지만 오브젝트 저장소에 연결하지 못했습니다.

내가 사용하는 것이 좋습니다 것입니다

: SoftLayer Object Storage PHP Client, 나는 그와 함께 도움이되기를 바랍니다 당신이 PHP를 opencloud 라이브러리를 사용하고 있기 때문에 어쨌든, (아래 참조) 다음 포럼에서 동일한 문제가 보인다 귀하의 요구 사항

+0

Ruber, 클라이언트를 사용해 볼 시간이 있었는데 문제가 없습니다. 언급 한 스레드에서 설명한 것처럼 다른 버전의 OpenStack API. 업그레이드 계획이 있으십니까? 아직 개발중인 클라이언트입니까? 공식 릴리스를 계획 하시겠습니까? – MarcSitges

+0

티켓을 제출하여 자세한 정보를 얻으시기 바랍니다. –