PyDrive2 icon indicating copy to clipboard operation
PyDrive2 copied to clipboard

fs.makedirs() fails unless you put a file in the folder (shared drive)

Open tristanryerparke opened this issue 8 months ago • 1 comments

Example:

# Setup
from pydrive2.fs import GDriveFileSystem
from pydrive2.auth import GoogleAuth

settings = {
    "client_config_backend": "service",
    'service_config': {
        'client_json_dict': {
            "type": "service_account",
            "private_key_id": str(os.getenv('xxx')),
            "private_key": str(os.getenv('xxx')).replace('\\n', '\n'),
            "client_email": str(os.getenv('xxx')),
            "client_id": str(os.getenv('xxx')),
        },
    'oauth_scope': [
        'https://www.googleapis.com/auth/drive',
        'https://www.googleapis.com/auth/drive.metadata'
    ]
    }
}

g = GoogleAuth(settings=settings)
g.ServiceAuth()
shared_d_name = "xxx"

fs = GDriveFileSystem(
    shared_d_name,
    google_auth=g
)


# Example that does not recursively create folders, and no exceptions raised
folder_path = f'{shared_d_name}/test_parent/test'
fs.makedirs(folder_path)

# Example that creates the folders
folder_path = f'{shared_d_name}/test_parent2/test2'
fs.makedirs(folder_path)
with fs.open(folder_path+'hi.txt', 'w') as f:
    f.write('hi')

Easy to make and then delete the file as a workaround, but the lack of success in the first example was wierd. Best, T

tristanryerparke avatar Jun 18 '24 21:06 tristanryerparke