在swift里要访问一个object须要先经过认证系统认证,好比经过keystone得到一个token再用这个token才能去访问资源。若是要构建公有云就得容许匿名访问资源。在swift里经过设置container ACLs是能够实现这点的html
好比要把tenantID为74d6e267b9c14d93b0c04760944f3b66的工程里的test容器里的资源设置为容许匿名可读,那么先经过原先的方法获取到一个token和publicURL,而后再PUT一个X-Container-Read: .r:*,.rlistings就能够了swift
curl –X PUT -i \api
-H "X-Auth-Token: fc81aaa6-98a1-9ab0-94ba-aba9a89aa9ae" \curl
-H "X-Container-Read: .r:*,.rlistings" \url
https://publicURL/v1/74d6e267b9c14d93b0c04760944f3b66/test.net
如今就能够直接这样下载test器的东西htm
curl -X GET -i https://publicURL/v1/74d6e267b9c14d93b0c04760944f3b66/test/somethineblog
也能够设置可写权限等,同时使用swift-client来设置也是能够的token
参考:ci
http://docs.openstack.org/api/openstack-object-storage/1.0/content/special-metadata-acls.html