Skip to main content

Overview

The Drive service provides access to Google Drive v3 API for managing files, folders, permissions, and shared drives. API: drive (v3)

Common Use Cases

  • List and search files
  • Upload and download files
  • Manage permissions and sharing
  • Organize files in folders
  • Work with shared drives

Helper Commands

+upload

Upload a file with automatic metadata detection:
gws drive +upload ./report.pdf
gws drive +upload ./report.pdf --parent FOLDER_ID
gws drive +upload ./data.csv --name 'Sales Data.csv'
Features:
  • Automatic MIME type detection
  • Infers filename from local path
  • Optional parent folder assignment

Command Examples

List Files

gws drive files list --params '{"pageSize": 10, "orderBy": "modifiedTime desc"}'
{
  "kind": "drive#fileList",
  "files": [
    {
      "kind": "drive#file",
      "id": "1abc...",
      "name": "Q1 Report.pdf",
      "mimeType": "application/pdf",
      "modifiedTime": "2026-03-01T10:30:00.000Z"
    }
  ]
}

Get File Metadata

gws drive files get --params '{"fileId": "FILE_ID"}'
{
  "kind": "drive#file",
  "id": "1abc...",
  "name": "Budget 2026.xlsx",
  "mimeType": "application/vnd.google-apps.spreadsheet",
  "createdTime": "2026-01-15T09:00:00.000Z",
  "modifiedTime": "2026-03-01T14:30:00.000Z",
  "owners": [
    {
      "displayName": "Alice Smith",
      "emailAddress": "alice@example.com"
    }
  ]
}

Create a File

Create empty file
gws drive files create --json '{"name": "My Document", "mimeType": "application/vnd.google-apps.document"}'
Upload file with metadata
gws drive files create --json '{"name": "report.pdf", "parents": ["FOLDER_ID"]}' --upload ./report.pdf

Create a Folder

gws drive files create --json '{"name": "Projects", "mimeType": "application/vnd.google-apps.folder"}'

Update File Metadata

Rename file
gws drive files update --params '{"fileId": "FILE_ID"}' --json '{"name": "New Name.pdf"}'
Move to folder
gws drive files update --params '{"fileId": "FILE_ID", "addParents": "NEW_FOLDER_ID", "removeParents": "OLD_FOLDER_ID"}'

Delete a File

Move to trash
gws drive files update --params '{"fileId": "FILE_ID"}' --json '{"trashed": true}'
Permanent delete
gws drive files delete --params '{"fileId": "FILE_ID"}'

Manage Permissions

Share with user
gws drive permissions create --params '{"fileId": "FILE_ID"}' --json '{"type": "user", "role": "reader", "emailAddress": "user@example.com"}'
Share with domain
gws drive permissions create --params '{"fileId": "FILE_ID"}' --json '{"type": "domain", "role": "reader", "domain": "example.com"}'
Make public
gws drive permissions create --params '{"fileId": "FILE_ID"}' --json '{"type": "anyone", "role": "reader"}'
List permissions
gws drive permissions list --params '{"fileId": "FILE_ID"}'

Export Google Workspace Files

Export Doc as PDF
gws drive files export --params '{"fileId": "FILE_ID", "mimeType": "application/pdf"}' > document.pdf
Export Sheet as CSV
gws drive files export --params '{"fileId": "FILE_ID", "mimeType": "text/csv"}' > data.csv

Copy a File

gws drive files copy --params '{"fileId": "FILE_ID"}' --json '{"name": "Copy of Document"}'

Advanced Queries

The q parameter supports powerful search operators:
Files modified after date
gws drive files list --params '{"q": "modifiedTime > '\''2026-01-01T00:00:00'\''"}}'
Files owned by user
gws drive files list --params '{"q": "'\''user@example.com'\'' in owners"}'
Shared files
gws drive files list --params '{"q": "sharedWithMe"}'
Starred files
gws drive files list --params '{"q": "starred = true"}'
Combine conditions
gws drive files list --params '{"q": "name contains '\''budget'\'' and mimeType = '\''application/pdf'\''"}}'

Resources

  • files - File and folder operations
  • permissions - Sharing and access control
  • drives - Shared drive management
  • comments - File comments
  • replies - Comment replies
  • revisions - File version history
Use gws drive <resource> --help to see all available methods.

Sheets

Work with spreadsheet data

Docs

Edit document content