Skip to content

Fix recursive downloads of unmounted shared folders - #401

Merged
AndreyVMarkelov merged 1 commit into
dropbox:masterfrom
AndreyVMarkelov:andreymarkelov/fix-shared-folder-recursive-download
Nov 12, 2026
Merged

AndreyVMarkelov merged 1 commit into
dropbox:masterfrom
AndreyVMarkelov:andreymarkelov/fix-shared-folder-recursive-download

Conversation

@AndreyVMarkelov

Copy link
Copy Markdown
Contributor

Recursive shared-link downloads fail with invalid shared link entry path "" when Dropbox omits path metadata for a folder that is not mounted in the caller's account. Build each entry's relative path from the folder being listed and its Name, rather than parsing PathDisplay and stripping the root name.

Reject empty names, dot segments, absolute paths, and names containing path separators before downloading files or queuing folders. Regression coverage includes listings with and without path metadata, nested downloads, pagination, existing targets, and unsafe names.

Validation:

  • go test ./...
  • go vet ./...
  • go build ./...
  • Live Dropbox E2E: reproduced share-link download --recursive fails for every entry when the shared folder isn't in the caller's Dropbox #393 with the old binary against an external folder whose entry omitted path_display; the fixed binary downloaded successfully to new, existing, and default targets. File size and Dropbox content_hash matched in each case. JSON output, --path to stdout, and rejection without --recursive also passed.
  • Additional live checks covered 13 files compared with ordinary get, plus a synthetic fixture with three directory levels, Unicode, spaces, an empty directory, and a child matching the root name. The synthetic link was revoked and the remote fixture removed.

Fixes #393.

Related: #396 (closed without merging).

@AndreyVMarkelov
AndreyVMarkelov merged commit 7ddc76f into dropbox:master Nov 12, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

share-link download --recursive fails for every entry when the shared folder isn't in the caller's Dropbox

1 participant