Ejemplo n.º 1
0
 /**
  * Given an OpenStack HTTP response, build a Container.
  *
  * This factory is intended for use by low-level libraries. In most
  * cases, the standard constructor is preferred for client-size
  * Container initialization.
  *
  * @param string $name     The name of the container.
  * @param object $response \OpenStack\Common\Transport\Response The HTTP response object from the Transporter layer
  * @param string $token    The auth token.
  * @param string $url      The base URL. The container name is automatically
  *                         appended to this at construction time.
  * @param \OpenStack\Common\Transport\ClientInterface $client A HTTP transport client.
  *
  * @return \OpenStack\ObjectStore\v1\Resource\Container The Container object, initialized and ready for use.
  */
 public static function newFromResponse($name, $response, $token, $url, ClientInterface $client = null)
 {
     $container = new Container($name, null, null, $client);
     $container->bytes = $response->getHeader('X-Container-Bytes-Used', 0);
     $container->count = $response->getHeader('X-Container-Object-Count', 0);
     $container->baseUrl = $url;
     $container->url = $url . '/' . rawurlencode($name);
     $container->token = $token;
     $headers = self::reformatHeaders($response->getHeaders());
     $container->acl = ACL::newFromHeaders($headers);
     $prefix = Container::CONTAINER_METADATA_HEADER_PREFIX;
     $metadata = Container::extractHeaderAttributes($headers, $prefix);
     $container->setMetadata($metadata);
     return $container;
 }