AeroniqxEveryday tools
Free tools. No ads.
Google Drive Folder Copy
Youโ€™re offline. Work Hours and Bill Splitter are available once their app files are saved.
Free ยท No install ยท Client-side

Copy Google Drive Folder
to Another Account

Recursively copies folders, subfolders, and files between two Google accounts โ€” including Docs, Sheets, Slides, PDFs, images, and more. No server. No data leaves your browser.

โœ“ Infinite folder depthโœ“ Docs, Sheets, Slidesโœ“ Live progressโœ“ Retry failed filesโœ“ Cancel anytime
1
Connect accountsSign in to source and destination separately
๐Ÿ“‚ Source account

The account that owns the folder you want to copy from

โ†’
๐Ÿ“ Destination account

The account where the copy will be created

2
Source folderPaste the Google Drive folder URL or ID
The folder must be accessible to your source account (shared link or owned by it)
3
OptionsConfigure copy behaviour
How it works & FAQs

Why Google Drive has no native folder copy โ€” and what this tool actually does

Google Drive has a "Make a copy" option for individual files, but it doesn't work on folders. This is intentional: Google's architecture stores files as independent objects with parent pointers โ€” there's no atomic "copy folder" operation in the Drive API. Building a folder copy requires recursively listing every file in every subfolder, downloading each one, and re-uploading it into a mirrored folder structure in the destination. That's exactly what this tool does, directly in your browser, without any server in between.

The tool uses Google Identity Services (GIS) โ€” Google's current OAuth 2.0 library โ€” to request tokens for two separate Google accounts in the same browser session. The source account gets a read-only token (drive.readonly scope). The destination account gets a write token (drive.file scope, which allows creating files and folders). This separation is deliberate: the destination token can only create new files, not read or delete existing ones in the destination account.

How Google Workspace files (Docs, Sheets, Slides) are handled

Google Docs, Sheets, and Slides don't have a real file format in the traditional sense โ€” they exist only as Google-side data structures. When you "download" a Google Doc, the Drive API exports it on the fly to a format like .docx or .xlsx. This tool uses that same export mechanism, then re-uploads the exported file with a MIME type that tells Google to convert it back into a native Google format on import.

Concretely: a Google Doc exports as .docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document), then re-uploads with the target MIME type application/vnd.google-apps.document, which signals Drive to auto-convert it back into a Google Doc. Same for Sheets (โ†’ .xlsx โ†’ Google Sheet) and Slides (โ†’ .pptx โ†’ Google Presentation). Google Drawings export as SVG and are uploaded without conversion back (the Drive API doesn't support re-importing SVG as a Drawing).

This round-trip through an Office format means minor fidelity losses are possible. Complex Docs with custom styles or embedded scripts, Sheets with advanced formulas, or Slides with unusual animations may lose some formatting. For most everyday documents โ€” text, tables, charts, standard formatting โ€” the copies are functionally identical to the originals.

Concurrency, rate limits, and why 3 parallel uploads is the sweet spot

The tool runs 3 file transfers in parallel by default. This is a deliberate balance. Google Drive API has per-user rate limits โ€” specifically, 12,000 requests per 60 seconds for the Drive v3 API. Each file transfer is at minimum 2 requests (download + upload), often 3โ€“4 with metadata calls. At 3 concurrent transfers you stay well under the limit even for large folders. Going higher (say, 10 concurrent) works fine for small folders but triggers 429 rate-limit errors on folders with hundreds of files, causing failures that require retries and actually slow things down net-total.

The retry logic handles transient failures automatically: if a file transfer fails, it waits 1.5 seconds and retries, then again after 3 seconds, for a maximum of 2 retries. After 2 retries, the file is logged as failed and you can see it in the file log. The "Retry failed files" button re-attempts all failed files at the end of the run without starting over from scratch.

Token expiry and long-running transfers

Google OAuth tokens for personal accounts expire after 1 hour. If you're copying a very large folder (thousands of files, multi-GB total) that takes more than 60 minutes, the source or destination token may expire mid-transfer. When a token expires, the next API call returns a 401 error, which will show up as a file failure in the log. The current tool doesn't auto-refresh tokens. If you hit this situation, cancel the transfer, reconnect both accounts (which re-acquires fresh tokens), and use "Retry failed files" โ€” the successfully copied files won't be duplicated since the retry only processes items that logged as failed.

What this tool can and cannot copy

It copies: regular files (PDFs, images, Office docs, ZIPs, etc.), Google Docs, Sheets, and Slides (with the export/import round-trip), and the full folder hierarchy including any depth of nested subfolders. File permissions, comments, revision history, and sharing settings are not copied โ€” the destination files start fresh with default permissions, owned by the destination account. Shortcuts (Drive's alias feature) are skipped โ€” they would point to the source account's files anyway. Files larger than 50MB may be slow depending on internet speed, since the entire file passes through the browser's memory.

Google Forms and Apps Script files are not supported for export โ€” these are left out of the copy. Trashed files in the source folder are explicitly excluded (the query filters trashed = false).

Privacy and data flow

No file data touches aeroniqx.in's servers. The entire transfer happens peer-to-peer between Google's API servers and your browser. The tool is pure client-side JavaScript โ€” you can verify this by opening DevTools โ†’ Network while a transfer runs and observing that all requests go to googleapis.com, not aeroniqx.in. The OAuth tokens are stored only in React state in your browser tab โ€” they're gone when you close the tab.

The tool does use Google's OAuth consent screen, which means Google knows which apps are authorized to access your Drive. You can revoke this at any time in myaccount.google.com/permissions โ€” search for "Aeroniqx" in the third-party apps list.

Frequently asked questions

Can I copy between a personal Google account and a Google Workspace account?

Yes. The tool authenticates each account independently โ€” source and destination can be any mix of personal Gmail accounts and Google Workspace (formerly G Suite) accounts. The only constraint is that the destination Workspace account must allow external file creation. Some organizations configure Workspace to restrict what external OAuth apps can do. If the destination account's admin has restricted Drive access for third-party apps, the upload step will fail with a permissions error and you'll need to ask your admin to allowlist the OAuth Client ID used by this tool.

The tool says "Folder not found" but the folder exists

This happens when the source account doesn't have access to the folder. Even if you can see the folder by opening its link in your browser, the OAuth token for the source account needs explicit access to read it. The folder must be either owned by the source account, or shared with the source account with at least Viewer access. Folders shared via "Anyone with the link" (public links) don't always work with the API the same way they work in the browser โ€” try sharing the folder directly to the source account's email address instead.

Some files copied fine but a few failed with 403 errors

403 from the Drive API means access denied. For individual files within a shared folder, this can happen when: (1) the file was shared with restricted access โ€” the folder is shared but specific files inside have different permissions, (2) Google Workspace DLP (Data Loss Prevention) policies block downloading certain file types, or (3) the file is in a shared drive (formerly Team Drive) and your source account is a member but not an owner โ€” some shared drives restrict downloads by non-owners. The retry function won't fix 403 errors (they're not transient) โ€” you'll need to download those files manually from the source account and upload them to the destination directly.

Can I copy a Shared Drive (Team Drive) to My Drive?

Yes, with caveats. The API calls include supportsAllDrives=true and includeItemsFromAllDrives=true, so the tool can read from Shared Drives. Your source account needs at least Commenter or Viewer access to the Shared Drive. The destination folder will be created in the destination account's My Drive (not a Shared Drive), so the copied files won't inherit the Shared Drive's collaborative features โ€” they'll be normal files owned by the destination account. If you want to copy into a destination Shared Drive, the tool currently always creates the root copy folder in "root" (My Drive) โ€” this limitation could be worked around by copying the root folder ID into the "destination folder name" field, but this isn't a built-in feature yet.

Find your tool

Business idea โ†—

Your toolkit. One tap away.

Add Aeroniqx to your home screen and open your tools in their own app window. Free, with no account or app store download.

On iPhone or iPad

  1. Open Aeroniqx in Safari and tap Share.
  2. Choose Add to Home Screen, then Add.

On Android

Open your browser menu (โ‹ฎ), then choose Install app or Add to Home screen. The option depends on your browser.

Saved tools stay on this device. Work Hours and Bill Splitter can open offline once their app files are saved during a connected visit. Other tools may need a connection. The appโ€™s offline cache does not store your files, timesheet entries or expense records.