Skip to content

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

Description

@tristanryerparke

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions