从 Postman 从 API 连接 Object 存储时发生未经授权的错误

Unauthorized error while connecting Object Storage from API from Postman

我正在尝试使用 post 中提供的 API 来获取 object 存储容器的详细信息,但是我遇到了未经授权的错误,

API 信息可在 http://developer.openstack.org/api-ref/object-storage/index.html?expanded=get-object-content-and-metadata-detail,show-account-details-and-list-containers-detail#accounts

以下是我在PostMan中设置的,

方法得到

Url: https://{domain}.objectstorage.softlayer.net/auth/v1.0/{userid}?format=json

Header: 关键:X-Auth-Token 值:{代币}

PostMan 响应错误,

<html>
    <h1>Unauthorized</h1>
    <p>This server could not verify that you are authorized to access the document you requested.</p>
</html>

您使用的是 SoftLayer 用户名还是对象存储用户名?要获取您的对象存储凭据,请转到 https://control.softlayer.com/storage/objectstorage > 单击您的对象存储用户名,然后在下一页上单击查看凭据。

获取令牌 curl -i -H "X-Auth-Key: [insert API Key here]" -H "X-Auth-User: [insert Object Storage Username here]" [insert Authentication Endpoint here]

获得令牌后,您可以执行基本操作

列出容器 curl -i -H 'X-Auth-Token: [X-Auth-Token from Authentication step]' [X-Storage-Url from Authentication step]

查看容器中的对象 curl -i -H "X-Auth-Token: [X-Auth-Token from Authentication step]" [X-Storage-Url from Authentication step]/[container name]

首先,您收到的错误是因为您请求中的 userid 参数不正确。 X-Storage-Url应该放在那个位置。

要检索容器,您首先需要一个 X-Auth-Token 和一个 X-Storage-Url。为此,您可以 运行 下一个 curl 命令:

curl -i -H "X-Auth-User: ACC-278436-15:USERNAME " -H "X-Auth-Key: API_KEY " https://dal05.objectstorage.softlayer.net/auth/v1.0

ACC-278436-15: 从 SoftLayer_Account::getHubNetworkStorage 方法中检索到的对象存储用户名

USERNAME: 控制门户中使用的用户名与调用 SoftLayer_Account::getHubNetworkStorage 方法的 REST 请求中使用的用户名相同

API_KEY:调用SoftLayer_Account::getHubNetworkStorage方法的REST请求中使用的apikey

结果将类似于:

• X-Auth-Token:AUTH_tkb26239d441d6401d9482b004d45f7259 – 我们需要的令牌

• X-Storage-Url:https://dal05.objectstorage.softlayer.net/v1/AUTH_df0de35c-d00a-40aa-b697-2b7f1b9331a6 - URL 访问存储

现在以这种方式放置这些值:

这里有一个很好的 link 关于如何通过 rest API 管理 SoftLayer 对象存储 https://sldn.softlayer.com/blog/waelriac/managing-softlayer-object-storage-through-rest-apis

要使用 Postman 从对象存储中检索容器,请按照下列步骤操作:

1。我们需要生成令牌才能访问对象存储

您需要从对象存储中获取凭据,因此您可以转到:

Control Portal >> Object Storage >> Select Account Name (e.g. SLOS123123-10) >> Select Cluster (e.g. Milan 1) >> click on "View Credentials"

您将能够看到

  • "Authentication Endpoint (public and private)"
  • "username"
  • "API Key (Password)"

然后,你可以到邮递员那里填写,如下例:

如您所见,我的请求成功了。所以我需要响应中的“Headers”信息,如下例:

2。检索容器

获得“X-Storage-Url”和“X-Storage-Token”后,可以获取容器如下例:

希望对您使用Postman访问Object Storage有所帮助,如有任何疑问或意见,请告诉我。