簡體   English   中英

使用Gaufrette將文件從我的應用程序上傳到Softlayer的對象存儲

[英]Uploading files from my app to Softlayer's Object Storage using Gaufrette

我正在構建一個允許上傳多種類型文件的Web應用程序,其中一些非常大。 后端是使用Symfony構建的(實際上是v3.1,但我不認為這對問題很重要)並且我使用Gaufrette Bundle與文件系統進行交互。 我發現它是一個很好的解決方案,因為它允許我根據文件類型和大小輕松地在本地存儲和雲對象存儲之間切換。

但是,我無法使其與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

我懷疑這個問題與庫內部卷曲的格式錯誤有關,但我無法找出它傳遞的參數是什么以及它們是否與Softlayer API匹配。 我已經嘗試過在Gaufrette文檔中顯示的OpenStack和Rackspace示例,但沒有運氣

我試圖重現你的問題,但我不能(我沒有成功連接對象存儲)。 無論如何,從以下論壇(見下文)看來是同樣的問題,因為你使用的是php opencloud庫:

我建議使用: SoftLayer對象存儲PHP客戶端 ,我希望它有助於滿足您的要求

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM