PHP Class elFinderVolumeGoogleDrive

Author: Dmitry (dio) Levashov
Author: Cem (discofever)
Inheritance: extends elFinderVolumeDriver
Mostra file Open project: studio-42/elfinder

Public Properties

Property Type Description
$netMountKey string Net mount key.

Protected Properties

Property Type Description
$client object Google API client object.
$directories array Cache of chiled directories of each directories.
$driverId string Driver id Must be started from letter and contains [a-z0-9] Used as part of volume id.
$names array Cache of itemID => name of each items.
$parents array Cache of parents of each directories.
$service object GoogleDrive service object.
$tmp string Directory for tmp files If not set driver will try to use tmbDir as tmpDir.

Public Methods

Method Description
__construct ( ) Constructor Extend options with required fields.
debug ( ) : array Return debug info for client.
getContentUrl ( string $hash, array $options = [] ) : boolean | string Return content URL (for netmout volume driver) If file.url == 1 requests from JavaScript client with XHR.
netmountPrepare ( $options ) : array Prepare Call from elFinder::netmout() before volume->mount().
netunmount ( $netVolumes, $key ) : boolean process of on netunmount Drop googledrive & rm thumbs.
umount ( ) Close opened connection.

Protected Methods

Method Description
_abspath ( string $path ) : string Convert path related to root dir into real path.
_archive ( string $dir, array $files, string $name, array $arc ) : string | boolean Create archive and return its path.
_basename ( string $path ) : string Return file name.
_checkArchivers ( ) Detect available archivers.
_chmod ( $path, $mode ) : boolean chmod implementation.
_copy ( string $source, string $targetDir, string $name ) : boolean Copy file into another file.
_dimensions ( string $path, string $mime ) : string Return object width and height Ususaly used for images, but can be realize for video etc.
_dirname ( string $path ) : string Return parent directory path.
_extract ( string $path, array $arc ) : true Extract files from archive.
_fclose ( resource $fp, $path = '' ) : boolean Close opened file.
_filePutContents ( string $path, string $content ) : boolean Write a string to a file.
_findSymlinks ( string $path ) : boolean Recursive symlinks search.
_fopen ( string $path, $mode = 'rb' ) : resource | false Open file and return file pointer.
_gd_getDirectories ( string $itemId ) : array Get descendants directories.
_gd_getDirectoryData ( string $usecache = true ) Make cache of $parents, $names and $directories.
_gd_getDownloadUrl ( Google_Service_Drive_DriveFile $file ) : string | false Get download url.
_gd_getLink ( object $file ) : string return item URL link.
_gd_getMountPaths ( $id ) Get ID based path from item ID.
_gd_getThumbnail ( string $path ) : string | boolean Get thumbnail from GoogleDrive.com.
_gd_isPublished ( object $file ) : boolean Return is published.
_gd_parseRaw ( string $raw ) : array Parse line from googledrive metadata output and return file stat (array).
_gd_publish ( string $path ) : boolean Publish permissions specified path item.
_gd_readFileChunk ( resource $handle, integer $chunkSize ) : string Read file chunk.
_gd_splitPath ( string $path ) : array Get Parent ID, Item ID, Parent Path as an array from path.
_gd_unPublish ( string $path ) : boolean unPublish permissions specified path.
_getContents ( string $path ) : string | false Get file contents.
_inpath ( string $path, string $parent ) : boolean Return true if $path is children of $parent.
_joinPath ( string $dir, string $name ) : string Join dir name and file name and retur full path.
_mkdir ( string $path, string $name ) : string | boolean Create dir and return created dir path or false on failed.
_mkfile ( string $path, string $name ) : string | boolean Create file and return it's path or false on failed.
_move ( string $source, $targetDir, string $name ) : string | boolean Move file into another parent dir.
_normpath ( string $path ) : string Return normalized path, this works the same as os.path.normpath() in Python.
_path ( string $path ) : string Return fake path started from root dir.
_relpath ( string $path ) : string Return file path related to root dir.
_rmdir ( string $path ) : boolean Remove dir.
_save ( resource $fp, $path, string $name, array $stat ) : boolean | string Create new file and write into it from file pointer.
_scandir ( string $path ) : array Return files list in directory.
_stat ( string $path ) : array | false Return stat for given path.
_subdirs ( string $path ) : boolean Return true if path is dir and has at least one childs directory.
_symlink ( string $target, string $path, $name ) : boolean Create symlink. FTP driver does not support symlinks.
_unlink ( string $path ) : boolean Remove file.
_unpack ( string $path, array $arc ) : true Unpack archive.
cacheDir ( string $path ) Cache dir contents.
configure ( ) Configure after successfull mount.
copy ( string $src, string $dst, string $name ) : string | false Copy file/recursive copy dir only in current volume.
createTmb ( string $path, $stat ) : string | false Create thumnbnail and return it's URL on success.
doSearch ( string $path, string $q, array $mimes ) : array Recursive files search.
init ( ) : boolean Prepare FTP connection Connect to remote server and check if credentials are correct, if so, store the connection id in $ftp_conn.
isNameExists ( string $path ) : array Return fileinfo based on filename For item ID based path file system Please override if needed on each drivers.
remove ( string $path, boolean $force = false, $recursive = false ) : boolean Remove file/ recursive remove dir.
tmbname ( array $stat ) : string Return thumbnail file name for required file.

Private Methods

Method Description
_gd_getFile ( string $path, $fields = '' ) : array Get dat(googledrive metadata) from GoogleDrive.
_gd_getNameByPath ( string $path ) : array Get dat(googledrive metadata) from GoogleDrive.
_gd_query ( $opts ) : boolean | array Drive query and fetchAll.

Method Details

__construct() public method

Constructor Extend options with required fields.
Author: Dmitry (dio) Levashov
Author: Cem (DiscoFever)
public __construct ( )

_abspath() protected method

Convert path related to root dir into real path.
Author: Dmitry (dio) Levashov
protected _abspath ( string $path ) : string
$path string file path
return string

_archive() protected method

Create archive and return its path.
Author: Dmitry (dio) Levashov,
Author: Alexey Sukhotin
protected _archive ( string $dir, array $files, string $name, array $arc ) : string | boolean
$dir string target dir
$files array files names list
$name string archive name
$arc array archiver options
return string | boolean

_basename() protected method

Return file name.
Author: Dmitry (dio) Levashov
protected _basename ( string $path ) : string
$path string file path
return string

_checkArchivers() protected method

Detect available archivers.
protected _checkArchivers ( )

_chmod() protected method

chmod implementation.
protected _chmod ( $path, $mode ) : boolean
return boolean

_copy() protected method

Copy file into another file.
Author: Dmitry (dio) Levashov
protected _copy ( string $source, string $targetDir, string $name ) : boolean
$source string source file path
$targetDir string target directory path
$name string new file name
return boolean

_dimensions() protected method

..
Author: Dmitry (dio) Levashov
protected _dimensions ( string $path, string $mime ) : string
$path string file path
$mime string file mime type
return string

_dirname() protected method

Return parent directory path.
Author: Dmitry (dio) Levashov
protected _dirname ( string $path ) : string
$path string file path
return string

_extract() protected method

Extract files from archive.
Author: Dmitry (dio) Levashov,
Author: Alexey Sukhotin
protected _extract ( string $path, array $arc ) : true
$path string archive path
$arc array archiver command and arguments (same as in $this->archivers)
return true

_fclose() protected method

Close opened file.
Author: Dmitry (dio) Levashov
protected _fclose ( resource $fp, $path = '' ) : boolean
$fp resource file pointer
return boolean

_filePutContents() protected method

Write a string to a file.
Author: Dmitry (dio) Levashov
protected _filePutContents ( string $path, string $content ) : boolean
$path string file path
$content string new file content
return boolean

_fopen() protected method

Open file and return file pointer.
Author: Dmitry (dio) Levashov
protected _fopen ( string $path, $mode = 'rb' ) : resource | false
$path string file path
return resource | false

_gd_getDirectories() protected method

Get descendants directories.
protected _gd_getDirectories ( string $itemId ) : array
$itemId string
return array

_gd_getDirectoryData() protected method

Make cache of $parents, $names and $directories.
protected _gd_getDirectoryData ( string $usecache = true )
$usecache string

_gd_getDownloadUrl() protected method

Get download url.
protected _gd_getDownloadUrl ( Google_Service_Drive_DriveFile $file ) : string | false
$file Google_Service_Drive_DriveFile
return string | false

_gd_getMountPaths() protected method

Get ID based path from item ID.
protected _gd_getMountPaths ( $id )

_gd_getThumbnail() protected method

Get thumbnail from GoogleDrive.com.
protected _gd_getThumbnail ( string $path ) : string | boolean
$path string
return string | boolean | boolean

_gd_isPublished() protected method

Return is published.
protected _gd_isPublished ( object $file ) : boolean
$file object
return boolean

_gd_parseRaw() protected method

Parse line from googledrive metadata output and return file stat (array).
Author: Dmitry Levashov
protected _gd_parseRaw ( string $raw ) : array
$raw string line from ftp_rawlist() output
return array

_gd_publish() protected method

Publish permissions specified path item.
protected _gd_publish ( string $path ) : boolean
$path string
return boolean

_gd_readFileChunk() protected method

Read file chunk.
protected _gd_readFileChunk ( resource $handle, integer $chunkSize ) : string
$handle resource
$chunkSize integer
return string

_gd_splitPath() protected method

Get Parent ID, Item ID, Parent Path as an array from path.
protected _gd_splitPath ( string $path ) : array
$path string
return array

_gd_unPublish() protected method

unPublish permissions specified path.
protected _gd_unPublish ( string $path ) : boolean
$path string
return boolean

_getContents() protected method

Get file contents.
Author: Dmitry (dio) Levashov
protected _getContents ( string $path ) : string | false
$path string file path
return string | false

_inpath() protected method

Return true if $path is children of $parent.
Author: Dmitry (dio) Levashov
protected _inpath ( string $path, string $parent ) : boolean
$path string path to check
$parent string parent path
return boolean

_joinPath() protected method

Join dir name and file name and retur full path.
Author: Dmitry (dio) Levashov
protected _joinPath ( string $dir, string $name ) : string
$dir string
$name string
return string

_mkdir() protected method

Create dir and return created dir path or false on failed.
Author: Dmitry (dio) Levashov
protected _mkdir ( string $path, string $name ) : string | boolean
$path string parent dir path
$name string new directory name
return string | boolean

_mkfile() protected method

Create file and return it's path or false on failed.
Author: Dmitry (dio) Levashov
protected _mkfile ( string $path, string $name ) : string | boolean
$path string parent dir path
$name string new file name
return string | boolean

_move() protected method

Return new file path or false.
Author: Dmitry (dio) Levashov
protected _move ( string $source, $targetDir, string $name ) : string | boolean
$source string source file path
$name string file name
return string | boolean

_normpath() protected method

Return normalized path, this works the same as os.path.normpath() in Python.
Author: Troex Nevelin
protected _normpath ( string $path ) : string
$path string path
return string

_path() protected method

Return fake path started from root dir.
Author: Dmitry (dio) Levashov
protected _path ( string $path ) : string
$path string file path
return string

_relpath() protected method

Return file path related to root dir.
Author: Dmitry (dio) Levashov
protected _relpath ( string $path ) : string
$path string file path
return string

_rmdir() protected method

Remove dir.
Author: Dmitry (dio) Levashov
protected _rmdir ( string $path ) : boolean
$path string dir path
return boolean

_save() protected method

Return new file path or false on error.
Author: Dmitry (dio) Levashov
protected _save ( resource $fp, $path, string $name, array $stat ) : boolean | string
$fp resource file pointer
$name string file name
$stat array file stat (required by some virtual fs)
return boolean | string

_scandir() protected method

Return files list in directory.
Author: Dmitry (dio) Levashov
Author: Cem (DiscoFever)
protected _scandir ( string $path ) : array
$path string dir path
return array

_stat() protected method

Stat contains following fields: - (int) size file size in b. required - (int) ts file modification time in unix time. required - (string) mime mimetype. required for folders, others - optionally - (bool) read read permissions. required - (bool) write write permissions. required - (bool) locked is object locked. optionally - (bool) hidden is object hidden. optionally - (string) alias for symlinks - link target path relative to root path. optionally - (string) target for symlinks - link target path. optionally. If file does not exists - returns empty array or false.
Author: Dmitry (dio) Levashov
protected _stat ( string $path ) : array | false
$path string file path
return array | false

_subdirs() protected method

Return true if path is dir and has at least one childs directory.
Author: Dmitry (dio) Levashov
protected _subdirs ( string $path ) : boolean
$path string dir path
return boolean

_unpack() protected method

Unpack archive.
Author: Dmitry (dio) Levashov
Author: Alexey Sukhotin
protected _unpack ( string $path, array $arc ) : true
$path string archive path
$arc array archiver command and arguments (same as in $this->archivers)
return true

cacheDir() protected method

Cache dir contents.
Author: Dmitry Levashov
protected cacheDir ( string $path )
$path string dir path

configure() protected method

Configure after successfull mount.
Author: Dmitry (dio) Levashov
protected configure ( )

copy() protected method

Return new file path or false.
Author: Dmitry (dio) Levashov
Author: Naoki Sawada
protected copy ( string $src, string $dst, string $name ) : string | false
$src string source path
$dst string destination dir path
$name string new file name (optionaly)
return string | false

createTmb() protected method

Create thumnbnail and return it's URL on success.
Author: Dmitry (dio) Levashov
Author: Naoki Sawada
protected createTmb ( string $path, $stat ) : string | false
$path string file path
return string | false

debug() public method

Return debug info for client.
public debug ( ) : array
return array

doSearch() protected method

Recursive files search.
Author: Naoki Sawada
protected doSearch ( string $path, string $q, array $mimes ) : array
$path string dir path
$q string search string
$mimes array
return array

getContentUrl() public method

Return content URL (for netmout volume driver) If file.url == 1 requests from JavaScript client with XHR.
Author: Naoki Sawada
public getContentUrl ( string $hash, array $options = [] ) : boolean | string
$hash string file hash
$options array options array
return boolean | string

init() protected method

Prepare FTP connection Connect to remote server and check if credentials are correct, if so, store the connection id in $ftp_conn.
Author: Dmitry (dio) Levashov
Author: Cem (DiscoFever)
protected init ( ) : boolean
return boolean

isNameExists() protected method

Return fileinfo based on filename For item ID based path file system Please override if needed on each drivers.
protected isNameExists ( string $path ) : array
$path string file cache
return array

netmountPrepare() public method

Prepare Call from elFinder::netmout() before volume->mount().
Author: Naoki Sawada
Author: Raja Sharma updating for GoogleDrive
public netmountPrepare ( $options ) : array
return array

netunmount() public method

process of on netunmount Drop googledrive & rm thumbs.
public netunmount ( $netVolumes, $key ) : boolean
return boolean

remove() protected method

Remove file/ recursive remove dir.
Author: Dmitry (dio) Levashov
Author: Naoki Sawada
protected remove ( string $path, boolean $force = false, $recursive = false ) : boolean
$path string file path
$force boolean try to remove even if file locked
return boolean

tmbname() protected method

Return thumbnail file name for required file.
Author: Dmitry (dio) Levashov
protected tmbname ( array $stat ) : string
$stat array file stat
return string

umount() public method

Close opened connection.
Author: Dmitry (dio) Levashov
public umount ( )

Property Details

$client protected_oe property

Google API client object.
protected object $client
return object

$directories protected_oe property

Cache of chiled directories of each directories.
protected array $directories
return array

$driverId protected_oe property

Driver id Must be started from letter and contains [a-z0-9] Used as part of volume id.
protected string $driverId
return string

$names protected_oe property

Cache of itemID => name of each items.
protected array $names
return array

$netMountKey public_oe property

Net mount key.
public string $netMountKey
return string

$parents protected_oe property

Cache of parents of each directories.
protected array $parents
return array

$service protected_oe property

GoogleDrive service object.
protected object $service
return object

$tmp protected_oe property

Directory for tmp files If not set driver will try to use tmbDir as tmpDir.
protected string $tmp
return string