azure-storage-file/src/File/FileRestProxy.php
public function copyFile(
        $share,
        $path,
        $sourcePath,
        array $metadata = array(),
        FileServiceOptions $options = null
    ) {
        return $this->copyFileAsync(
            $share,
            $path,
            $sourcePath,
            $metadata,
            $options
        )->wait();
    }
public function copyFile(
        $share,
        $path,
        $sourcePath,
        array $metadata = array(),
        FileServiceOptions $options = null
    ) {
        return $this->copyFileAsync(
            $share,
            $path,
            $sourcePath,
            $metadata,
            $options
        )->wait();
    }
Informs server to copy file from $sourcePath to $path.
To copy a file to another file within the same storage account, you may
use Shared Key to authenticate the source file. If you are copying a file
from another storage account, or if you are copying a blob from the same
storage account or another storage account, then you must authenticate
the source file or blob using a shared access signature. If the source is
a public blob, no authentication is required to perform the copy
operation.
Here are some examples of source object URLs:
https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile
https://myaccount.blob.core.windows.net/mycontainer/myblob?sastoken

@param  string                  $share      The share name.
@param  string                  $path       The path of the file.
@param  string                  $sourcePath The path of the source.
@param  array                   $metadata   The metadata of the file.
If specified, source metadata
will not be copied.
@param  FileServiceOptions|null $options    The optional parameters.

@return CopyFileResult

@see https://docs.microsoft.com/en-us/rest/api/storageservices/copy-file