次の CURL リクエストを使用して、Rackspace Cloud Files にファイルを投稿しています。
$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 が表示されます。