我正在使用以下 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。