Unauthorized error while connecting Object Storage

2019-02-27 06:07发布

问题:

I am trying to get object storage container details using provided API in post man But I am getting Unauthorized error,

API information available at 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

Following details I am set in PostMan,

Method Get

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

Header: Key: X-Auth-Token Value: {token}

Error got in response of PostMan,

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

回答1:

To retrieve containers from Object Storage using Postman, follow these steps:

1. We need to generate the token to access Object Storage

You need to get credentials from your object storage, so you can go to:

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

You will be able to see

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

Then, you can go to postman and fill as the below example:

As you see, I had success with the request. So I need the "Headers" information from the response, as the follow example:

2. Retrieve containers

After getting "X-Storage-Url" and "X-Storage-Token", you can retrieve the containers as the example below:

I hope it helps you to access Object Storage using Postman, please let me know any doubt or comment.



回答2:

Are you using your SoftLayer username or the Object Storage username? To get your Object Storage credentials go to https://control.softlayer.com/storage/objectstorage > Click on your Object Storage Username and on the following page click View Credentials.

Get the Token curl -i -H "X-Auth-Key: [insert API Key here]" -H "X-Auth-User: [insert Object Storage Username here]" [insert Authentication Endpoint here]

Once you have the Token you can perform basic operations

List Containers curl -i -H 'X-Auth-Token: [X-Auth-Token from Authentication step]' [X-Storage-Url from Authentication step]

View Objects in a Container curl -i -H "X-Auth-Token: [X-Auth-Token from Authentication step]" [X-Storage-Url from Authentication step]/[container name]



回答3:

To start, the error that you're receiving is because the userid parameter in your request is not correct. The X-Storage-Url should be placed in that position.

To retrieve the containers you first need a X-Auth-Token and a X-Storage-Url. For this you could run the next curl command:

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: The object storage username retrieved from SoftLayer_Account::getHubNetworkStorage method

USERNAME: The username used in Control portal which is the same used in the REST request that calls the SoftLayer_Account::getHubNetworkStorage method

API_KEY: The apikey used in the REST request that calls the SoftLayer_Account::getHubNetworkStorage method

The result will be similar to this:

• X-Auth-Token: AUTH_tkb26239d441d6401d9482b004d45f7259 – the token we need

• X-Storage-Url: https://dal05.objectstorage.softlayer.net/v1/AUTH_df0de35c-d00a-40aa-b697-2b7f1b9331a6 - the URL to access the storage

Now place these values in this way:

Here's a good link on how to manage SoftLayer Object Storage through rest API https://sldn.softlayer.com/blog/waelriac/managing-softlayer-object-storage-through-rest-apis