如何在SoftLayer的对象存储上为对象生成TempURL

时间:2016-03-21 02:29:55

标签: ruby ibm-cloud-infrastructure object-storage

如何在SoftLayer的对象存储上为对象生成TempURL?

我目前使用Ruby API,我可以在验证后访问我的对象。 但对于外部最终用户,我需要为该对象生成公共URL,无需身份验证过程即可访问该URL。

我尝试生成带有过期的临时URL,但我找不到HMAC hexdigest()的密钥。我怎么能找到它?或者有没有其他方法可以获得相同的结果?

2 个答案:

答案 0 :(得分:1)

我可以使用像这样的swift客户端来做到这一点:

We add the temporary urls secret keys with the command: 
$ swift post -m "Temp-URL-Key:mykey"

We create the temporary URL:
$ swift-temp-url GET 3600 /v1/AUTH_d684780d-aafe-4772-bcbb-0f07d5f6edf3/a-container/data.txt mykey

it returns:
v1/AUTH_d684780d-aafe-4772-bcbb-0f07d5f6edf3/a-container/data.txt?temp_url_sig=19f067d38dc532883e8f02be3b43a172c61e51d2&temp_url_expires=1445615769

Then we can access to the file:
curl 'https://dal05.objectstorage.softlayer.net/v1/AUTH_d684780d-aafe-4772-bcbb-0f07d5f6edf3/a-container/data.txt?temp_url_sig=19f067d38dc532883e8f02be3b43a172c61e51d2&temp_url_expires=1445615769'

一些参考页面: 这里有如何安装和配置swift客户端 http://sldn.softlayer.com/es/blog/waelriac/Managing-SoftLayer-Object-Storage-Through-REST-APIs 这里有如何创建临时URL http://luisbg.blogalia.com/historias/74348

我希望它有所帮助

答案 1 :(得分:1)

回答自己。

我在做了一些搜索之后终于为它写了一个代码,包括:

  1. https://github.com/softlayer/softlayer-object-storage-ruby
  2. 中读取相关的API代码
  3. 阅读http://sldn.softlayer.com/es/blog/waelriac/Managing-SoftLayer-Object-Storage-Through-REST-APIs
  4. 之后,我从第二个文档的中间找到了一些提示:响应Header包含这个键!
    • X - 帐户 - 元温度-URL密钥
  5. 所以,我为它编写了一个代码(方法)并发出了拉取请求(https://github.com/softlayer/softlayer-object-storage-ruby/pull/10),我希望它很快会合并。 无论如何,如果尚未接受,您可以在https://github.com/c12g/softlayer-object-storage-ruby

    找到我的代码