fsspec filesystem - PyDrive2 1.19.0 documentation (original) (raw)

View this page

Toggle table of contents sidebar

PyDrive2 provides easy way to work with your files through fsspeccompatible GDriveFileSystem.

Installation

pip install 'pydrive2[fsspec]'

Local webserver

from pydrive2.fs import GDriveFileSystem

fs = GDriveFileSystem( "root", client_id="my_client_id", client_secret="my_client_secret", )

By default, credentials will be cached per ‘client_id’, but if you are using multiple users you might want to use ‘profile’ to avoid accidentally using someone else’s cached credentials:

from pydrive2.fs import GDriveFileSystem

fs = GDriveFileSystem( "root", client_id="my_client_id", client_secret="my_client_secret", profile="myprofile", )

Writing cached credentials to a file and using it if it already exists (which avoids interactive auth):

from pydrive2.fs import GDriveFileSystem

fs = GDriveFileSystem( "root", client_id="my_client_id", client_secret="my_client_secret", client_json_file_path="/path/to/keyfile.json", )

Using cached credentials from json string (avoids interactive auth):

from pydrive2.fs import GDriveFileSystem

fs = GDriveFileSystem( "root", client_id="my_client_id", client_secret="my_client_secret", client_json=json_string, )

Service account

Using json keyfile path:

from pydrive2.fs import GDriveFileSystem

fs = GDriveFileSystem( # replace with ID of a drive or directory and give service account access to it "root", use_service_account=True, client_json_file_path="/path/to/keyfile.json", )

Using json keyfile string:

from pydrive2.fs import GDriveFileSystem

fs = GDriveFileSystem( # replace with ID of a drive or directory and give service account access to it "root", use_service_account=True, client_json=json_string, )

Use client_user_email if you are using delegation of authority.

Additional parameters

trash_only (bool):

Move files to trash instead of deleting.

acknowledge_abuse (bool):

Acknowledging the risk and download file identified as abusive. See Abusive files for more info.

Using filesystem

replace root with ID of a drive or directory and give service account access to it

for root, dnames, fnames in fs.walk("root"): for dname in dnames: print(f"dir: {root}/{dname}")

for fname in fnames:
    print(f"file: {root}/{fname}")

Filesystem instance offers a large number of methods for getting information about and manipulating files, refer to fsspec docs onhow to use a filesystem.