簡體   English   中英

Rackspace Cloud Files API:404錯誤

[英]Rackspace Cloud Files API: 404 Error

我正在使用以下CURL請求將文件發布到Rackspace雲文件:

$ch = curl_init(trim($rackspace['X-Storage-Url']).'/container/hello');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-Auth-Token: '.$rackspace['X-Auth-Token'], 'Content-Length: '.$data['file']['size']));
curl_setopt($ch, CURLOPT_PUT, true);
curl_setopt($ch, CURLOPT_INFILE, fopen($data['file']['path'], 'r'));
curl_setopt($ch, CURLOPT_INFILESIZE, $data['file']['size']);
curl_setopt($ch, CURLOPT_HEADER, true);
echo curl_exec($ch);

我正在關注Rackspace 文檔 ,但是我收到了404 Not Found錯誤,我不太確定如何解決這個問題。 有什么建議么?

經過進一步分析,我發現在驗證后發布的X-Storage-Url是https://storage101.dfw1.clouddrive.com dfw1表示達拉斯的數據中心,但我創建的容器位於芝加哥。 為了確認這是問題,我在達拉斯數據中心創建了一個容器並再次嘗試 - 一切正常。 我向Rackspace提交了一張票,將我的默認存儲位置更改為芝加哥。 現在一切正常。

正如所選答案中所指出的,如果我一直在使用最新版本的API(2.0),那么我會看到兩個位置的URL。

經過進一步分析,我發現在驗證后發布的X-Storage-Urlhttps://storage101.dfw1.clouddrive.com dfw1表示達拉斯的數據中心,但我創建的容器位於芝加哥。 為了確認這是問題,我在達拉斯數據中心創建了一個容器並再次嘗試 - 一切正常。 我向Rackspace提交了一張票,將我的默認存儲位置更改為芝加哥。 現在一切正常。

這聽起來像你正在使用的舊V1.0認證方法,如API文檔在這里 這樣做將始終返回您的默認存儲位置。 然而,隨着API身份驗證系統V2.0描述這里認證響應將包含兩個不同的雲文件的端點網址,每一個數據中心。 但是,這兩者都指向相同的API,因此如果您更換了身份驗證代碼,那么所有其他與雲文件相關的代碼都應“正常工作”。

名為“container”的容器需要已存在於您的X-Storage-Url指向的區域中的帳戶下。 您可能在容器上獲得404,從而阻止在其中創建對象。 您可以通過PUT到API或通過http://mycloud.rackspace.com/上的控制面板創建容器。

-標記

暫無
暫無

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

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