Re: [Openstack] use php to make container public or not
why you do not try to swauth? it's create enough i think... On Tue, Dec 6, 2011 at 7:10 PM, crayon_z wrote: > ** > Hi, pf shineyear. > > It seems that you use swauth or tempauth as the auth system for Swift. > Have you tried the keystone auth system? How to make a container private > with keystone auth system? It seems that all the containers created are > public. > > Thanks. > > -- > Crayon > > *Sender:* pf shineyear > *Date:* 2011年11月23日(星期三) 下午12:47 > *To:* openstack > *Subject:* [Openstack] use php to make container public or not > php curl have a shit feature: can not post an empty http header, so if > you want to perform a command like this in php: > > swift -A http://10.38.10.127:8080/auth/v1.0 -U AUTH_testa27:AUTH_testu27 > -K testp post -r ' ' mycontainer2 > > the "X-Container-Read" will not be send, so you can not make a container > unpublic from public > > i write an example code to show how make it work with php, just use ' not > " and plus \n at the end > > hope can make some help > > > > $prefix = "AUTH_"; > $account_name = $prefix."testa27"; > $user_name = $prefix."testu27"; > $user_pass = "testp"; > $container = "mycontainer2"; > $user_token = "AUTH_tkb21f5fcfea144cf9a99ed1de9a577db2"; > $path = "/v1/".$account_name."/".$container; > > > #if you want to make container public use this > #$http_headers = array("X-Auth-Token: ".$user_token, > 'X-Container-Read: .r:*'); > > #if you want to make container not public use this > $http_headers = array("X-Auth-Token: ".$user_token, 'X-Container-Read: > \n'); > > print_r($http_header); > > $ch = curl_init(); > > curl_setopt($ch, CURLOPT_URL, "http://10.38.10.127:8080".$path); > curl_setopt($ch, CURLOPT_POST, 1); > curl_setopt($ch, CURLOPT_HTTPHEADER, $http_headers); > curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); > curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); > curl_setopt($ch, CURLINFO_HEADER_OUT, true); > > print "test set container public\n"; > > curl_exec($ch); > > $headers = curl_getinfo($ch, CURLINFO_HEADER_OUT); > > print_r($headers); > > if (!curl_errno($ch)) > { > $info = curl_getinfo($ch); > > if ((int)($info['http_code'] / 100) != 2) > { > print "set container public return error > ".$info['http_code']."\n"; > return -1; > } > } > else > { > print "set container public error\n"; > return -2; > } > > curl_close($ch); > > ?> > ___ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp
Re: [Openstack] use php to make container public or not
sorry , i did not use keystone On Tue, Dec 6, 2011 at 7:10 PM, crayon_z wrote: > ** > Hi, pf shineyear. > > It seems that you use swauth or tempauth as the auth system for Swift. > Have you tried the keystone auth system? How to make a container private > with keystone auth system? It seems that all the containers created are > public. > > Thanks. > > -- > Crayon > > *Sender:* pf shineyear > *Date:* 2011年11月23日(星期三) 下午12:47 > *To:* openstack > *Subject:* [Openstack] use php to make container public or not > php curl have a shit feature: can not post an empty http header, so if > you want to perform a command like this in php: > > swift -A http://10.38.10.127:8080/auth/v1.0 -U AUTH_testa27:AUTH_testu27 > -K testp post -r ' ' mycontainer2 > > the "X-Container-Read" will not be send, so you can not make a container > unpublic from public > > i write an example code to show how make it work with php, just use ' not > " and plus \n at the end > > hope can make some help > > > > $prefix = "AUTH_"; > $account_name = $prefix."testa27"; > $user_name = $prefix."testu27"; > $user_pass = "testp"; > $container = "mycontainer2"; > $user_token = "AUTH_tkb21f5fcfea144cf9a99ed1de9a577db2"; > $path = "/v1/".$account_name."/".$container; > > > #if you want to make container public use this > #$http_headers = array("X-Auth-Token: ".$user_token, > 'X-Container-Read: .r:*'); > > #if you want to make container not public use this > $http_headers = array("X-Auth-Token: ".$user_token, 'X-Container-Read: > \n'); > > print_r($http_header); > > $ch = curl_init(); > > curl_setopt($ch, CURLOPT_URL, "http://10.38.10.127:8080".$path); > curl_setopt($ch, CURLOPT_POST, 1); > curl_setopt($ch, CURLOPT_HTTPHEADER, $http_headers); > curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); > curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); > curl_setopt($ch, CURLINFO_HEADER_OUT, true); > > print "test set container public\n"; > > curl_exec($ch); > > $headers = curl_getinfo($ch, CURLINFO_HEADER_OUT); > > print_r($headers); > > if (!curl_errno($ch)) > { > $info = curl_getinfo($ch); > > if ((int)($info['http_code'] / 100) != 2) > { > print "set container public return error > ".$info['http_code']."\n"; > return -1; > } > } > else > { > print "set container public error\n"; > return -2; > } > > curl_close($ch); > > ?> > ___ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp
Re: [Openstack] use php to make container public or not
Appreciate it Thanks Hugo's iPhone pf shineyear 於 2011/11/23 12:47 寫道: > php curl have a shit feature: can not post an empty http header, so if you > want to perform a command like this in php: > > swift -A http://10.38.10.127:8080/auth/v1.0 -U AUTH_testa27:AUTH_testu27 -K > testp post -r ' ' mycontainer2 > > the "X-Container-Read" will not be send, so you can not make a container > unpublic from public > > i write an example code to show how make it work with php, just use ' not " > and plus \n at the end > > hope can make some help > > > > $prefix = "AUTH_"; > $account_name = $prefix."testa27"; > $user_name = $prefix."testu27"; > $user_pass = "testp"; > $container = "mycontainer2"; > $user_token = "AUTH_tkb21f5fcfea144cf9a99ed1de9a577db2"; > $path = "/v1/".$account_name."/".$container; > > > #if you want to make container public use this > #$http_headers = array("X-Auth-Token: ".$user_token, 'X-Container-Read: > .r:*'); > > #if you want to make container not public use this > $http_headers = array("X-Auth-Token: ".$user_token, 'X-Container-Read: > \n'); > > print_r($http_header); > > $ch = curl_init(); > > curl_setopt($ch, CURLOPT_URL, "http://10.38.10.127:8080".$path); > curl_setopt($ch, CURLOPT_POST, 1); > curl_setopt($ch, CURLOPT_HTTPHEADER, $http_headers); > curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); > curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); > curl_setopt($ch, CURLINFO_HEADER_OUT, true); > > print "test set container public\n"; > > curl_exec($ch); > > $headers = curl_getinfo($ch, CURLINFO_HEADER_OUT); > > print_r($headers); > > if (!curl_errno($ch)) > { > $info = curl_getinfo($ch); > > if ((int)($info['http_code'] / 100) != 2) > { > print "set container public return error > ".$info['http_code']."\n"; > return -1; > } > } > else > { > print "set container public error\n"; > return -2; > } > > curl_close($ch); > > ?> > ___ > Mailing list: https://launchpad.net/~openstack > Post to : openstack@lists.launchpad.net > Unsubscribe : https://launchpad.net/~openstack > More help : https://help.launchpad.net/ListHelp ___ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp
[Openstack] use php to make container public or not
php curl have a shit feature: can not post an empty http header, so if you want to perform a command like this in php: swift -A http://10.38.10.127:8080/auth/v1.0 -U AUTH_testa27:AUTH_testu27 -K testp post -r ' ' mycontainer2 the "X-Container-Read" will not be send, so you can not make a container unpublic from public i write an example code to show how make it work with php, just use ' not " and plus \n at the end hope can make some help http://10.38.10.127:8080".$path); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $http_headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); curl_setopt($ch, CURLINFO_HEADER_OUT, true); print "test set container public\n"; curl_exec($ch); $headers = curl_getinfo($ch, CURLINFO_HEADER_OUT); print_r($headers); if (!curl_errno($ch)) { $info = curl_getinfo($ch); if ((int)($info['http_code'] / 100) != 2) { print "set container public return error ".$info['http_code']."\n"; return -1; } } else { print "set container public error\n"; return -2; } curl_close($ch); ?> ___ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp