openstack swift构建公有云

在swift里要访问一个object需要先通过认证系统认证,比如通过keystone获得一个token再用这个token才能去访问资源。如果要构建公有云就得允许匿名访问资源。在swift里通过设置container ACLs是可以实现这点的

比如要把tenantID为74d6e267b9c14d93b0c04760944f3b66的工程里的test容器里的资源设置为允许匿名可读,那么先通过原先的方法获取到一个token和publicURL,然后再PUT一个X-Container-Read: .r:*,.rlistings就可以了

curl –X PUT -i \

    -H "X-Auth-Token: fc81aaa6-98a1-9ab0-94ba-aba9a89aa9ae" \

    -H "X-Container-Read: .r:*,.rlistings" \

    https://publicURL/v1/74d6e267b9c14d93b0c04760944f3b66/test

现在就可以直接这样下载test器的东西

curl -X GET -i https://publicURL/v1/74d6e267b9c14d93b0c04760944f3b66/test/somethine

也可以设置可写权限等,同时使用swift-client来设置也是可以的

参考:

http://docs.openstack.org/api/openstack-object-storage/1.0/content/special-metadata-acls.html

http://blog.fsquat.net/?p=40

你可能感兴趣的:(openstack swift构建公有云)