我在尝试让Rackspace Opencloud API按预期工作(尤其是云文件)时遇到问题。
我一直在遵循这些指南:
https://github.com/rackspace/php-opencloud/blob/master/docs/userguide/ObjectStore/Access.mdhttp://docs.rackspace.com/sdks/api/php/namespace-OpenCloud.ObjectStore.html
身份验证似乎工作正常,因为返回了令牌和服务目录。
header("Content-Type: text/plain");
require '/vendor/autoload.php';
use OpenCloudRackspace;
$client = new Rackspace('https://lon.identity.api.rackspacecloud.com/v2.0/', array(
'username' => 'MY_USERNAME',
'apiKey' => 'MY_APIKEY'
));
$client->authenticate();
echo 'Authenticated with token: '.$client->getToken()."nn";
print_r($client->getCatalog());
当我尝试从 API 使用服务时,我的问题就开始了:
$service = $client->objectStoreService('cloudFiles');
此行会终止代码。我已经复制了Rackspace文档行,但仍然没有运气,我无法让任何服务工作。
任何人都可以看到我出错的地方或提供任何解决此问题的最佳方法的提示吗?
显式指定区域
您需要明确选择要使用的区域。从您的身份行来看,您似乎需要将其设置为 LON。
$service = $client->objectStoreService('cloudFiles', 'LON'); # Or IAD, HKG, SYD, etc.
旁注:我刚刚在php-opencloud上提交了一个拉取请求,以便在文档中更清楚地说明这一点。