public function rename($path_from, $path_to)
    {
        if ($this->getContainerName($path_from) != $this->getContainerName($path_to)) {
            throw new BlobException('Container name can not be changed.');
        }

        if ($this->getFileName($path_from) == $this->getContainerName($path_to)) {
            return true;
        }

        $this->getStorageClient($path_from)->copyBlob(
            $this->getContainerName($path_from),
            $this->getFileName($path_from),
            $this->getContainerName($path_to),
            $this->getFileName($path_to)
        );
        $this->getStorageClient($path_from)->deleteBlob(
            $this->getContainerName($path_from),
            $this->getFileName($path_from)
        );

        // Clear the stat cache for the affected paths.
        clearstatcache(true, $path_from);
        clearstatcache(true, $path_to);
        return true;
    }