2

所以,这就是我使用 API 所做的事情:

  1. Auth(从“对象存储”中获取我需要的特定区域的令牌和 publicUrl)

  2. 像这样使用来自端点的 publicUrl 来获取文件列表: GET [publicUrl]/[container] 这将返回一个数组,其中每个项目(对象)如下所示:

    ( [hash] => 7213ee9a7d9dc119d2921a40e899ec5e [last_modified] => 2015-12-29T02:46:08.400490 [bytes] => 1 [name] => 某种类型的文件 name.jpg [content_type] => application/postscript )

现在,如何构建 url 以对项目(对象)执行 GET 操作?我尝试了以下方法:

[publicUrl]/[container]/[hash] [publicUrl]/[container]/urlencoded([name])

除其他没有意义的事情外,但我还是尝试了。

任何想法/帮助将不胜感激!

4

1 回答 1

3

如果您使用的是Rackspace SDK,您可以跳过自己构建 URL。

这是使用公共 URL 检索云文件对象的文档。对象 URL 是容器的公共 URL(在 X-Cdn-Uri 响应标头中找到)与附加的对象名称的组合。

例如,对于名为“foo”的容器,向 API 发送经过身份验证的 HEAD 请求:

HEAD {cloudFilesEndpoint}/foo

在响应中,容器的公共 URL 位于“X-Cdn-Uri”标头中:

HTTP/1.1 204 No Content
X-Cdn-Ssl-Uri: https://83c49b9a2f7ad18250b3-346eb45fd42c58ca13011d659bfc1ac1.ssl.cf0.rackcdn.com
X-Ttl: 259200
X-Cdn-Uri: http://081e40d3ee1cec5f77bf-346eb45fd42c58ca13011d659bfc1ac1.r49.cf0.rackcdn.com
X-Cdn-Enabled: True
X-Log-Retention: False
X-Cdn-Streaming-Uri: http://084cc2790632ccee0a12-346eb45fd42c58ca13011d659bfc1ac1.r49.stream.cf0.rackcdn.com
X-Trans-Id: tx82a6752e00424edb9c46fa2573132e2c
Content-Length: 0

现在,对于名为“styles/site.css”的对象,将该名称附加到公共 URL,从而生成以下 URL:

http://081e40d3ee1cec5f77bf-346eb45fd42c58ca13011d659bfc1ac1.r49.cf0.rackcdn.com/styles/site.css
于 2015-12-29T15:47:40.187 回答