public function rename($name)
    {
        $this->guardDeletedFile();

        // If there is any slash character in new name, Selectel
        // will create new virtual directory and copy file to
        // this new one. Such behaviour may be unexpected.

        if (count(explode('/', $name)) > 1) {
            throw new InvalidArgumentException('File name can not contain "/" character.');
        }

        $destination = $this->directory().'/'.$name;

        $response = $this->api->request('PUT', $this->absolutePath($destination), [
            'headers' => [
                'X-Copy-From' => $this->absolutePath(),
                'Content-Length' => 0,
            ],
        ]);

        if ($response->getStatusCode() !== 201) {
            throw new ApiRequestFailedException(
                'Unable to rename file from "'.$this->name().'" to "'.$name.'" (path: "'.$this->directory().'").',
                $response->getStatusCode()
            );
        }

        // Since Selectel Storage does not provide such method as "rename",
        // we need to delete original file after copying. Also, "deleted"
        // flag needs to be reverted because file was actually renamed.

        $this->delete();
        $this->deleted = false;

        return $this->data['name'] = $destination;
    }
public function rename($name)
    {
        $this->guardDeletedFile();

        // If there is any slash character in new name, Selectel
        // will create new virtual directory and copy file to
        // this new one. Such behaviour may be unexpected.

        if (count(explode('/', $name)) > 1) {
            throw new InvalidArgumentException('File name can not contain "/" character.');
        }

        $destination = $this->directory().'/'.$name;

        $response = $this->api->request('PUT', $this->absolutePath($destination), [
            'headers' => [
                'X-Copy-From' => $this->absolutePath(),
                'Content-Length' => 0,
            ],
        ]);

        if ($response->getStatusCode() !== 201) {
            throw new ApiRequestFailedException(
                'Unable to rename file from "'.$this->name().'" to "'.$name.'" (path: "'.$this->directory().'").',
                $response->getStatusCode()
            );
        }

        // Since Selectel Storage does not provide such method as "rename",
        // we need to delete original file after copying. Also, "deleted"
        // flag needs to be reverted because file was actually renamed.

        $this->delete();
        $this->deleted = false;

        return $this->data['name'] = $destination;
    }
public function rename ( $ name ) { $ this -> guardDeletedFile ( ) ; // If there is any slash character in new name, Selectel // will create new virtual directory and copy file to // this new one. Such behaviour may be unexpected. if ( count ( explode ( '/' , $ name ) ) > 1 ) { throw new InvalidArgumentException ( 'File name can not contain "/" character.' ) ; } $ destination = $ this -> directory ( ) . '/' . $ name ; $ response = $ this -> api -> request ( 'PUT' , $ this -> absolutePath ( $ destination ) , [ 'headers' => [ 'X-Copy-From' => $ this -> absolutePath ( ) , 'Content-Length' => 0 , ] , ] ) ; if ( $ response -> getStatusCode ( ) !== 201 ) { throw new ApiRequestFailedException ( 'Unable to rename file from "' . $ this -> name ( ) . '" to "' . $ name . '" (path: "' . $ this -> directory ( ) . '").' , $ response -> getStatusCode ( ) ) ; } // Since Selectel Storage does not provide such method as "rename", // we need to delete original file after copying. Also, "deleted" // flag needs to be reverted because file was actually renamed. $ this -> delete ( ) ; $ this -> deleted = false ; return $ this -> data [ 'name' ] = $ destination ; }
Rename file. New file name must be provided without path.

@param string $name

@throws \LogicException
@throws \InvalidArgumentException
@throws \ArgentCrusade\Selectel\CloudStorage\Exceptions\ApiRequestFailedException

@return string
Rename file . New file name must be provided without path .