protected function loadContainerData()
    {
        // CloudStorage::containers and CloudStorage::getContainer methods did not
        // produce any requests to Selectel API, since it may be unnecessary if
        // user only wants to upload/manage files or delete container via API.

        // If user really wants some container info, we will load
        // it here on demand. This speeds up application a bit.

        $response = $this->api->request('HEAD', $this->absolutePath());

        if ($response->getStatusCode() !== 204) {
            throw new ApiRequestFailedException('Container "'.$this->name().'" was not found.');
        }

        $this->dataLoaded = true;

        // We will extract some headers from response
        // and assign them as container data. Also
        // we'll try to find any container Meta.

        $this->data = [
            'type' => $response->getHeaderLine('X-Container-Meta-Type'),
            'count' => intval($response->getHeaderLine('X-Container-Object-Count')),
            'bytes' => intval($response->getHeaderLine('X-Container-Bytes-Used')),
            'rx_bytes' => intval($response->getHeaderLine('X-Received-Bytes')),
            'tx_bytes' => intval($response->getHeaderLine('X-Transfered-Bytes')),
            'meta' => $this->extractMetaData($response),
        ];
    }
protected function loadContainerData()
    {
        // CloudStorage::containers and CloudStorage::getContainer methods did not
        // produce any requests to Selectel API, since it may be unnecessary if
        // user only wants to upload/manage files or delete container via API.

        // If user really wants some container info, we will load
        // it here on demand. This speeds up application a bit.

        $response = $this->api->request('HEAD', $this->absolutePath());

        if ($response->getStatusCode() !== 204) {
            throw new ApiRequestFailedException('Container "'.$this->name().'" was not found.');
        }

        $this->dataLoaded = true;

        // We will extract some headers from response
        // and assign them as container data. Also
        // we'll try to find any container Meta.

        $this->data = [
            'type' => $response->getHeaderLine('X-Container-Meta-Type'),
            'count' => intval($response->getHeaderLine('X-Container-Object-Count')),
            'bytes' => intval($response->getHeaderLine('X-Container-Bytes-Used')),
            'rx_bytes' => intval($response->getHeaderLine('X-Received-Bytes')),
            'tx_bytes' => intval($response->getHeaderLine('X-Transfered-Bytes')),
            'meta' => $this->extractMetaData($response),
        ];
    }
protected function loadContainerData ( ) { // CloudStorage::containers and CloudStorage::getContainer methods did not // produce any requests to Selectel API, since it may be unnecessary if // user only wants to upload/manage files or delete container via API. // If user really wants some container info, we will load // it here on demand. This speeds up application a bit. $ response = $ this -> api -> request ( 'HEAD' , $ this -> absolutePath ( ) ) ; if ( $ response -> getStatusCode ( ) !== 204 ) { throw new ApiRequestFailedException ( 'Container "' . $ this -> name ( ) . '" was not found.' ) ; } $ this -> dataLoaded = true ; // We will extract some headers from response // and assign them as container data. Also // we'll try to find any container Meta. $ this -> data = [ 'type' => $ response -> getHeaderLine ( 'X-Container-Meta-Type' ) , 'count' => intval ( $ response -> getHeaderLine ( 'X-Container-Object-Count' ) ) , 'bytes' => intval ( $ response -> getHeaderLine ( 'X-Container-Bytes-Used' ) ) , 'rx_bytes' => intval ( $ response -> getHeaderLine ( 'X-Received-Bytes' ) ) , 'tx_bytes' => intval ( $ response -> getHeaderLine ( 'X-Transfered-Bytes' ) ) , 'meta' => $ this -> extractMetaData ( $ response ) , ] ; }
Container data lazy loader.

@throws \ArgentCrusade\Selectel\CloudStorage\Exceptions\ApiRequestFailedException
Container data lazy loader .