Upload, browse and manage your notebooks and scripts in My Files from the Code page, JupyterLab and the Wherobots CLI.
File Explorer lets you upload, browse and manage your notebooks and scripts in the Wherobots Cloud console. You can reach your files from the Code page, previously called the Files page, from JupyterLab, and from the Wherobots CLI.
Each user gets their own My Files location in every region they work in.
Each region has its own My Files. Choose the region before you work with files.
Code page
CLI
Go to the Code page, expand the region, for example AWS US West (Oregon), then expand My Files under it.
Pass --region after my-files:
wherobots files my-files --region aws-us-west-2 ls
Without --region, the CLI uses your Organization’s default region. If your Organization has none, the command fails with your organization has no default region: pass --region <region>.
In the tree, expand My Files in your region, then expand the folder you want to see.
wherobots files my-files lswherobots files my-files ls projects/2026 --output json
The default output is a table with the columns TYPE, SIZE, MODIFIED and NAME. An empty folder prints No files or folders., and so does a folder that does not exist, so check the spelling if you expect files. Use --output json in scripts.
Select the Actions menu next to My Files or the destination folder.
Select Upload Files and choose one or more files.
Click Upload.
If a file with the same name is already in the folder, the dialog warns that it “already exists here and will be replaced by the upload”. Select Replace the existing file to continue.
Give the local file, then the path in My Files. When the path ends in /, the file keeps its local name:
The command prints Uploaded ./report.csv to .... If a file with the same name is already there, the CLI replaces it without asking.The CLI uploads one file per command. To upload many, create the folder first, then loop over the files with modest parallelism. The API can answer HTTP 429 Rate exceeded, and the CLI does not retry for you, so retry failed files.
Select the file in the tree, then click the Download icon in the details panel, or select Download from the file’s Actions menu.
The file menu
Without a local path, the file is saved under its own name in the current folder. When the local path is an existing folder, the file is saved inside it:
Select the file in the tree. The details panel shows a read-only preview of notebooks (.ipynb) up to 25 MiB, and of text files such as .py, .sql, .md, .csv, .json and .txt up to 1 MiB. Larger files show Too large to preview, and other files show No preview.
If a file with the new name is already in the folder, mv replaces it without asking.The Code page and the CLI cannot move a file to another folder. Move it in a notebook, or download it, upload it to the new folder, then delete the original.
rm and rmdir print Deleted ... even when the path does not exist, so check the spelling of the path.
Deleting cannot be undone. If a running notebook saved files in a folder during the last minute, files in a deleted folder can come back. Delete folders from the notebook, or wait about a minute after the last save.
On the Code page, you can open a text file such as .ipynb, .py, .sql, .md, .csv, .txt or .json straight into a new Notebook Runtime.
Select the file in the tree.
Click the Open File icon in the details panel, or select Open File from the file’s Actions menu. The Open in a Notebook Runtime dialog names the region and the path where the file is available in the Notebook Runtime.
Choose the Size and other options if you need to, then click Open. A new Notebook Runtime starts in the file’s region, in a new browser tab, and JupyterLab opens the file when it is ready.
Open in a Notebook Runtime
If your browser blocks the new tab, click Open workspace in the message on the Code page.
In JupyterLab, My Files is the MY FILES panel. In a notebook terminal, it is /home/wherobots/workspace/my-files. Files in MY FILES are kept across session restarts. Any other folder in the notebook’s file system is deleted when the session restarts.If you used notebooks before My Files, your previous home folder is kept, either as the folder your notebook opens in or as the read-only _legacy_home_backup folder in My Files. See If you used notebooks before My Files.Example notebooks in the EXAMPLES panel are read-only. To change one, right-click it and choose Copy to My Files. See Find your files.
Saving in a notebook is complete when Jupyter shows it as saved.
Change
Where it appears
When
Save, create or rename in a notebook
Your notebooks in the same region
Immediately. When Jupyter shows a file as saved, it is stored and kept, even if your session restarts.
Upload or delete on the Code page, or upload, rename or delete with the CLI
Code page and CLI
The CLI shows the change immediately. On the Code page, your own changes show within a few seconds; changes made elsewhere appear when an open folder next refreshes itself, or when you click the Refresh icon. A collapsed folder shows them when you open it.
Save, create or rename in a notebook
Code page and CLI
About a minute after the file’s last change
Delete in a notebook
Code page and CLI
About a minute after the delete
Upload in the Code page or the CLI
Notebook
Within a few seconds.
Delete in the Code page or the CLI
Notebook
Within a few seconds. When you delete many files at once, some can take up to about a minute. A deleted folder’s files disappear, but the empty folder stays in a running notebook.
The CLI takes paths relative to the root of My Files.
A leading / is ignored: /projects/report.csv and projects/report.csv are the same file.
A trailing / names a folder.
Empty levels (projects//report.csv), . and .. are refused before any request is sent.
To see the requests a command would send without sending them, add --dry-run. The CLI prints each request as a curl command. Without --region, one request is still sent to look up your Organization’s default region.
In a script, check the file’s lastModified time instead of waiting a fixed time. If the file already exists, the CLI lists the previous version until the change arrives, so wait for the time to change. A listed name alone does not mean the new version has arrived. This example uses jq:
set -o pipefail# Prints the file's lastModified time. Fails if the listing fails or the file is not listed yet.modified() { wherobots files my-files ls projects --output json \ | jq -er '.[] | select(.name == "analysis.ipynb") | .lastModified'}# Run this before you save in the notebookbefore=$(modified) || before=""# After you save, wait until the stored copy has the new version.# A failed listing, for example HTTP 429, is retried instead of ending the wait.until now=$(modified) && [ "$now" != "$before" ]; do sleep 10done
Your previous home folder is the _legacy_home_backup folder in MY FILES, at /home/wherobots/workspace/my-files/_legacy_home_backup in a notebook terminal. It is read-only, so copy the files you want to keep working on out of it into My Files. On the Code page, _legacy_home_backup shows as an empty folder, because its files are reachable only from a notebook.
File browser: open _legacy_home_backup, right-click a file or folder, and select Copy. Open the folder in MY FILES where you want it, right-click an empty area, and select Paste.
Private to you. Other members of your Organization cannot see your My Files.
Each region is separate. A notebook can reach only the My Files of its own region. To work on a file from another region, use Open File on the Code page.
Cause: The path does not exist in My Files in this region, or a file saved in a notebook in the last minute is not shown yet.Solution: Check the path with wherobots files my-files ls <folder>, and pass --region if the file is in another region. For a notebook save, wait about a minute after the last change.
Files is not enabled for my-files in region <region>
Cause: My Files is not available to you in that region.Solution: Try another --region.
file is <N> MB, exceeding 500 MB limit
Cause: The file is larger than 500 MiB. The CLI message writes the limit as MB.Solution: Split the file, or store it in Managed Storage or an S3 storage integration.
HTTP 429 Rate exceeded
Cause: You sent too many requests in a short time, for example during a bulk upload.Solution: Wait, retry the failed files, and lower the number of parallel uploads. See Upload files.
A file I saved in a notebook is not on the Code page
Cause: The file is saved. The Code page shows it about a minute after the file’s last change.Solution: Wait about a minute after your last save. Open folders update on their own. If the folder is collapsed, expand it.
A folder I deleted came back
Cause: A running notebook saved files in the folder during the last minute, for example in .ipynb_checkpoints. The delete missed those files, and they were copied back.Solution: Delete folders from the notebook, or wait about a minute after the last save, then delete the folder again.
For sign-in errors, see Troubleshooting on the Wherobots CLI page.
{"docsConfig":{"theme":"aspen","$schema":"https://www.mintlify.com/docs.json","name":"Wherobots","colors":{"primary":"#6612c5","light":"#6612c5","dark":"#6612c5"},"logo":{"light":"https://mintcdn.com/wherobots/q2h_5BmXeWMz6JRH/logo/light.png?fit=max\u0026auto=format\u0026n=q2h_5BmXeWMz6JRH\u0026q=85\u0026s=5a1512dbd3547c3df4e8f4779a1e4cfa","dark":"https://mintcdn.com/wherobots/q2h_5BmXeWMz6JRH/logo/dark.png?fit=max\u0026auto=format\u0026n=q2h_5BmXeWMz6JRH\u0026q=85\u0026s=8d84ac8734585eb38f09b1ea4c0d8e5c","href":"/"},"favicon":"https://mintcdn.com/wherobots/q2h_5BmXeWMz6JRH/favicon.png?fit=max\u0026auto=format\u0026n=q2h_5BmXeWMz6JRH\u0026q=85\u0026s=aa88d68dcd661ed008af0d0a8c4bcd47","api":{"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl","python","javascript","go","java"],"prefill":true}},"appearance":{"default":"light"},"navbar":{"links":[{"href":"/changelog","label":"Changelog"},{"href":"/support","label":"Support"}],"primary":{"type":"button","label":"Open Wherobots Cloud","href":"https://cloud.wherobots.com"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/wherobots","x":"https://x.com/wherobots","github":"https://github.com/wherobots","youtube":"https://www.youtube.com/channel/UCFC5QjLyQ3wanshI5xUH0aw","discord":"https://sedona.apache.org/1.5.2/community/contact"},"links":[{"header":"Resources","items":[{"label":"Support","href":"/support"},{"label":"Changelog","href":"/changelog"},{"label":"Cloud availability","href":"/availability"}]},{"header":"Legal","items":[{"label":"Terms of service","href":"/terms-of-service"},{"label":"Privacy policy","href":"/privacy-policy"}]}]},"seo":{"metatags":{"canonical":"https://docs.wherobots.com","googlebot":"index, follow","robots":"index, follow","keywords":"Managed Apache Sedona, Apache Sedona, Wherobots docs, Wherobots documentation, Iceberg tables, Spatial SQL API, Wherobots Cloud Python SDK, RasterFlow, Map Matching, Spatial Data Catalog, Wherobots Airflow Provider","description":"Official Wherobots Documentation. Learn how to conduct scalable spatial analysis with WherobotsDB—the serverless cloud platform from the creators of Apache Sedona.","google-site-verification":"ERHB94F_PoM_qpM06mYclqitx8bvFFskIdV7VT8DT30","indexing":"all"}},"fonts":{"heading":{"family":"Figtree"},"body":{"family":"Figtree"}},"styling":{"codeblocks":"system","latex":false},"integrations":{"amplitude":{"apiKey":"ee314e073a5b08c12a78aef591a50bc1"},"ga4":{"measurementId":"G-D4ED50QSVC"}},"contextual":{"options":["copy","view","download-spec"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"wherobots","hasAudioNarration":false,"actualSubdomain":"wherobots","customDomains":["docs.wherobots.com"],"gitSource":{"type":"github","owner":"wherobots","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af166c9a4c1fa5a268787a2","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"Reference","count":1836},{"language":"default","tag":"WherobotsDB","count":879},{"language":"default","tag":"Python","count":449},{"language":"default","tag":"SQL","count":422},{"language":"default","tag":"Geometry Functions","count":267},{"language":"default","tag":"DataFrame functions","count":209},{"language":"default","tag":"GeoPandas API","count":159},{"language":"default","tag":"GeoSeries","count":130},{"language":"default","tag":"Raster Functions","count":109},{"language":"default","tag":"Accessors","count":94}]},"assistantConfig":{"enableAskAiButton":true,"enableAskAiSearchBar":false},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"develop/storage-management/file-explorer","slug":"/develop/storage-management/file-explorer","pageMetadata":{"title":"File Explorer","sidebarTitle":"File Explorer","description":"Upload, browse and manage your notebooks and scripts in My Files from the Code page, JupyterLab and the Wherobots CLI.","keywords":["Files page","My Files","Code page"],"href":"/develop/storage-management/file-explorer"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Upload, browse and manage your notebooks and scripts in My Files from the Code page, JupyterLab and the Wherobots CLI.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,CodeBlock,Frame,Heading,Note,OptimizedImage,Tab,Table,Tabs,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`File Explorer`}),` lets you upload, browse and manage your notebooks and scripts in the `,_jsx(_components.strong,{children:`Wherobots Cloud`}),` console. You can reach your files from the `,_jsx(_components.strong,{children:`Code`}),` page, previously called the Files page, from JupyterLab, and from the Wherobots CLI.`]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Each user gets their own My Files location in every region they work in.`})}),`\n`,_jsx(Frame,{caption:`The Code page with My Files in AWS EU (Ireland)`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/files-tree.jpg?fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=889565ed47226177b9dcf8e8d4cedecd`,alt:`Code page with My Files expanded in AWS EU (Ireland)`,\"data-og-width\":`2560`,width:`2560`,\"data-og-height\":`1280`,height:`1280`,\"data-path\":`images/develop/storage-management/file-explorer/files-tree.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/files-tree.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=85e30f4490570bd5d5359c0a0444febd 280w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/files-tree.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=ebdafafddc8272e8ff44916edab557a4 560w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/files-tree.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=8e504fef20707d6d5b12c264867b3a30 840w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/files-tree.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=0bac12d7450403dbf3b80bae4ab2422b 1100w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/files-tree.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=3b41d3e9648b085066ae3197f63ae52b 1650w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/files-tree.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=84d37852279afac6e18efd185f98df78 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`before-you-start`,children:`Before you start`}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`Code page`,id:`code-page`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.strong,{children:`Wherobots Account`}),`. See `,_jsx(_components.a,{href:`/get-started/wherobots-cloud/create-account`,children:`Create a Wherobots Account`}),`.`]}),`\n`]})}),_jsx(Tab,{title:`CLI`,id:`cli`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.strong,{children:`Wherobots CLI`}),`, version 1.3.0 or later. See `,_jsx(_components.a,{href:`/develop/cli`,children:`Install Wherobots CLI`}),`. Check your version with `,_jsx(_components.code,{children:`wherobots --version`}),`, and update with `,_jsx(_components.code,{children:`wherobots upgrade`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`A signed-in CLI: run `,_jsx(_components.code,{children:`wherobots auth login`}),`, or set `,_jsx(_components.code,{children:`WHEROBOTS_API_KEY`}),`. See `,_jsx(_components.a,{href:`/develop/cli#configure-authentication`,children:`Configure authentication`}),`.`]}),`\n`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`choose-a-region`,children:`Choose a region`}),`\n`,_jsx(_components.p,{children:`Each region has its own My Files. Choose the region before you work with files.`}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`Code page`,id:`code-page-2`,children:_jsxs(_components.p,{children:[`Go to the `,_jsx(_components.a,{href:`https://cloud.wherobots.com/code`,children:_jsx(_components.strong,{children:`Code`})}),` page, expand the region, for example `,_jsx(_components.strong,{children:`AWS US West (Oregon)`}),`, then expand `,_jsx(_components.strong,{children:`My Files`}),` under it.`]})}),_jsxs(Tab,{title:`CLI`,id:`cli-2`,children:[_jsxs(_components.p,{children:[`Pass `,_jsx(_components.code,{children:`--region`}),` after `,_jsx(_components.code,{children:`my-files`}),`:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`wherobots`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-files`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --region`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` aws-us-west-2`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ls`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Without `,_jsx(_components.code,{children:`--region`}),`, the CLI uses your Organization’s default region. If your Organization has none, the command fails with `,_jsx(_components.code,{children:`your organization has no default region: pass --region \u003cregion>`}),`.`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`work-with-files-and-folders`,children:`Work with files and folders`}),`\n`,_jsx(Heading,{level:`3`,id:`list-a-folder`,children:`List a folder`}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`Code page`,id:`code-page-3`,children:_jsxs(_components.p,{children:[`In the tree, expand `,_jsx(_components.strong,{children:`My Files`}),` in your region, then expand the folder you want to see.`]})}),_jsxs(Tab,{title:`CLI`,id:`cli-3`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`wherobots`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ls`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`wherobots`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ls`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` projects/2026`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --output`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` json`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`The default output is a table with the columns `,_jsx(_components.code,{children:`TYPE`}),`, `,_jsx(_components.code,{children:`SIZE`}),`, `,_jsx(_components.code,{children:`MODIFIED`}),` and `,_jsx(_components.code,{children:`NAME`}),`. An empty folder prints `,_jsx(_components.code,{children:`No files or folders.`}),`, and so does a folder that does not exist, so check the spelling if you expect files. Use `,_jsx(_components.code,{children:`--output json`}),` in scripts.`]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`create-a-folder`,children:`Create a folder`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Code page`,id:`code-page-4`,children:[_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Select the `,_jsx(_components.strong,{children:`Actions`}),` menu (the vertical dots) next to `,_jsx(_components.strong,{children:`My Files`}),` or a folder.`]}),`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`New Folder`}),`, enter a `,_jsx(_components.strong,{children:`Folder Name`}),`, and click `,_jsx(_components.strong,{children:`Create`}),`.`]}),`\n`]}),_jsx(Frame,{caption:`The folder menu`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/wherobots/nu6ThpURIl3k3UEE/images/develop/storage-management/file-explorer/folder-menu.jpg?fit=max\u0026auto=format\u0026n=nu6ThpURIl3k3UEE\u0026q=85\u0026s=3eabb403de0a816f0a50d604bddf5ec5`,alt:`The folder Actions menu`,\"data-og-width\":`2560`,width:`2560`,\"data-og-height\":`1600`,height:`1600`,\"data-path\":`images/develop/storage-management/file-explorer/folder-menu.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/wherobots/nu6ThpURIl3k3UEE/images/develop/storage-management/file-explorer/folder-menu.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=nu6ThpURIl3k3UEE\u0026q=85\u0026s=f6def532945bf4c31fc17b167b9292f0 280w, https://mintcdn.com/wherobots/nu6ThpURIl3k3UEE/images/develop/storage-management/file-explorer/folder-menu.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=nu6ThpURIl3k3UEE\u0026q=85\u0026s=400f47139c0f15769f7b9390aa792d36 560w, https://mintcdn.com/wherobots/nu6ThpURIl3k3UEE/images/develop/storage-management/file-explorer/folder-menu.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=nu6ThpURIl3k3UEE\u0026q=85\u0026s=7342b87de0052304fdeef47f8fc68c4a 840w, https://mintcdn.com/wherobots/nu6ThpURIl3k3UEE/images/develop/storage-management/file-explorer/folder-menu.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=nu6ThpURIl3k3UEE\u0026q=85\u0026s=b7297471ab8953eb3bcb4af33fde35e2 1100w, https://mintcdn.com/wherobots/nu6ThpURIl3k3UEE/images/develop/storage-management/file-explorer/folder-menu.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=nu6ThpURIl3k3UEE\u0026q=85\u0026s=0f19a938e57b4a23bd73d9c884e37469 1650w, https://mintcdn.com/wherobots/nu6ThpURIl3k3UEE/images/develop/storage-management/file-explorer/folder-menu.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=nu6ThpURIl3k3UEE\u0026q=85\u0026s=552fcadca70ef554d6f73e85ec101ce5 2500w`})})]}),_jsxs(Tab,{title:`CLI`,id:`cli-4`,children:[_jsxs(_components.p,{children:[_jsx(_components.code,{children:`mkdir`}),` creates the folder and any missing parent folders, and prints `,_jsx(_components.code,{children:`Created folder projects/2026/q3`}),`:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`wherobots`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mkdir`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` projects/2026/q3`})]}),`\n`]})})})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`upload-files`,children:`Upload files`}),`\n`,_jsx(_components.p,{children:`Each file can be up to 500 MiB.`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Code page`,id:`code-page-5`,children:[_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Select the `,_jsx(_components.strong,{children:`Actions`}),` menu next to `,_jsx(_components.strong,{children:`My Files`}),` or the destination folder.`]}),`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`Upload Files`}),` and choose one or more files.`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Upload`}),`.`]}),`\n`]}),_jsxs(_components.p,{children:[`If a file with the same name is already in the folder, the dialog warns that it “already exists here and will be replaced by the upload”. Select `,_jsx(_components.strong,{children:`Replace the existing file`}),` to continue.`]})]}),_jsxs(Tab,{title:`CLI`,id:`cli-5`,children:[_jsxs(_components.p,{children:[`Give the local file, then the path in My Files. When the path ends in `,_jsx(_components.code,{children:`/`}),`, the file keeps its local name:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`wherobots`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` upload`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./report.csv`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` projects/report.csv`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`wherobots`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` upload`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./report.csv`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` projects/`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`The command prints `,_jsx(_components.code,{children:`Uploaded ./report.csv to ...`}),`. If a file with the same name is already there, the CLI replaces it without asking.`]}),_jsxs(_components.p,{children:[`The CLI uploads one file per command. To upload many, create the folder first, then loop over the files with modest parallelism. The API can answer HTTP 429 `,_jsx(_components.code,{children:`Rate exceeded`}),`, and the CLI does not retry for you, so retry failed files.`]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`download-a-file`,children:`Download a file`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Code page`,id:`code-page-6`,children:[_jsxs(_components.p,{children:[`Select the file in the tree, then click the `,_jsx(_components.strong,{children:`Download`}),` icon in the details panel, or select `,_jsx(_components.strong,{children:`Download`}),` from the file’s `,_jsx(_components.strong,{children:`Actions`}),` menu.`]}),_jsx(Frame,{caption:`The file menu`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/file-menu.jpg?fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=fc039eea7b6aeac1f508b89231f3b2f2`,alt:`The file Actions menu`,\"data-og-width\":`2560`,width:`2560`,\"data-og-height\":`1280`,height:`1280`,\"data-path\":`images/develop/storage-management/file-explorer/file-menu.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/file-menu.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=f8b2660a122a2905b8e163b7269c9d5a 280w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/file-menu.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=85375bd558fd11c404a3983c479166b4 560w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/file-menu.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=26a20d6f35e7f79883829f876cf834f2 840w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/file-menu.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=fe4dd834f77016a827172ad06059cf0b 1100w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/file-menu.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=a6de3d1f50ab89746bde97c19394b2c7 1650w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/file-menu.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=7984d1aa9ed54aba30e0928dc224d15d 2500w`})})]}),_jsxs(Tab,{title:`CLI`,id:`cli-6`,children:[_jsx(_components.p,{children:`Without a local path, the file is saved under its own name in the current folder. When the local path is an existing folder, the file is saved inside it:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`wherobots`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` download`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` projects/report.csv`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`wherobots`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` download`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` projects/report.csv`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./backup/`})]}),`\n`]})})})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`view-a-file`,children:`View a file`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Code page`,id:`code-page-7`,children:[_jsxs(_components.p,{children:[`Select the file in the tree. The details panel shows a read-only preview of notebooks (`,_jsx(_components.code,{children:`.ipynb`}),`) up to 25 MiB, and of text files such as `,_jsx(_components.code,{children:`.py`}),`, `,_jsx(_components.code,{children:`.sql`}),`, `,_jsx(_components.code,{children:`.md`}),`, `,_jsx(_components.code,{children:`.csv`}),`, `,_jsx(_components.code,{children:`.json`}),` and `,_jsx(_components.code,{children:`.txt`}),` up to 1 MiB. Larger files show `,_jsx(_components.strong,{children:`Too large to preview`}),`, and other files show `,_jsx(_components.strong,{children:`No preview`}),`.`]}),_jsx(Frame,{caption:`A read-only notebook preview in the details panel`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/files-detail-preview.jpg?fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=f73b24dc8f73216b192fde6b0e346c91`,alt:`A notebook preview in the details panel`,\"data-og-width\":`2560`,width:`2560`,\"data-og-height\":`1280`,height:`1280`,\"data-path\":`images/develop/storage-management/file-explorer/files-detail-preview.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/files-detail-preview.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=586fae38e335debeff0e9cb1ccc19d61 280w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/files-detail-preview.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=cef8631645630badc1127ac291ec2915 560w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/files-detail-preview.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=9ef6c904ff4eb8d9ff6f76da1ea17442 840w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/files-detail-preview.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=73e24ee74c9d33b690151b435a5b466b 1100w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/files-detail-preview.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=3bd39ba7456fed682c73d333245fa71c 1650w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/files-detail-preview.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=51fd1f5c3d0e94d05db376a5137cbfdb 2500w`})})]}),_jsx(Tab,{title:`CLI`,id:`cli-7`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`wherobots`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cat`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` projects/report.csv`})]}),`\n`]})})})})]}),`\n`,_jsx(Heading,{level:`3`,id:`rename-a-file`,children:`Rename a file`}),`\n`,_jsxs(_components.p,{children:[`Renaming is not available on the Code page. Use the CLI, or rename the file in a notebook. In the CLI, `,_jsx(_components.code,{children:`mv`}),` renames a file within its folder:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`wherobots`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mv`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` projects/report.csv`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` report-final.csv`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`If a file with the new name is already in the folder, `,_jsx(_components.code,{children:`mv`}),` replaces it without asking.`]}),`\n`,_jsx(_components.p,{children:`The Code page and the CLI cannot move a file to another folder. Move it in a notebook, or download it, upload it to the new folder, then delete the original.`}),`\n`,_jsx(Heading,{level:`3`,id:`delete-a-file-or-folder`,children:`Delete a file or folder`}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`Code page`,id:`code-page-8`,children:_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Select the `,_jsx(_components.strong,{children:`Actions`}),` menu next to the file or folder, then select `,_jsx(_components.strong,{children:`Delete`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Type the name to confirm, and click `,_jsx(_components.strong,{children:`Delete`}),`. Deleting a folder deletes everything inside it.`]}),`\n`]})}),_jsxs(Tab,{title:`CLI`,id:`cli-8`,children:[_jsxs(_components.p,{children:[_jsx(_components.code,{children:`rm`}),` deletes a file. `,_jsx(_components.code,{children:`rmdir`}),` deletes an empty folder, and `,_jsx(_components.code,{children:`--recursive`}),` deletes a folder and everything in it:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`wherobots`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` rm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` projects/report-final.csv`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`wherobots`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` rmdir`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` projects/2026/q3`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`wherobots`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` rmdir`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` projects`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --recursive`})]}),`\n`]})})}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`rm`}),` and `,_jsx(_components.code,{children:`rmdir`}),` print `,_jsx(_components.code,{children:`Deleted ...`}),` even when the path does not exist, so check the spelling of the path.`]})]})]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Deleting cannot be undone. If a running notebook saved files in a folder during the last minute, files in a deleted folder can come back. Delete folders from the notebook, or wait about a minute after the last save.`})}),`\n`,_jsx(`span`,{id:`open-a-file-in-a-notebook`,className:`scroll-mt-(--scroll-mt)`}),`\n`,_jsx(`span`,{id:`open-a-file-in-a-jupyter-runtime`,className:`scroll-mt-(--scroll-mt)`}),`\n`,_jsx(Heading,{level:`2`,id:`open-a-file-in-a-notebook-runtime`,children:`Open a file in a Notebook Runtime`}),`\n`,_jsxs(_components.p,{children:[`On the Code page, you can open a text file such as `,_jsx(_components.code,{children:`.ipynb`}),`, `,_jsx(_components.code,{children:`.py`}),`, `,_jsx(_components.code,{children:`.sql`}),`, `,_jsx(_components.code,{children:`.md`}),`, `,_jsx(_components.code,{children:`.csv`}),`, `,_jsx(_components.code,{children:`.txt`}),` or `,_jsx(_components.code,{children:`.json`}),` straight into a new Notebook Runtime.`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Select the file in the tree.`}),`\n`,_jsxs(_components.li,{children:[`Click the `,_jsx(_components.strong,{children:`Open File`}),` icon in the details panel, or select `,_jsx(_components.strong,{children:`Open File`}),` from the file’s `,_jsx(_components.strong,{children:`Actions`}),` menu. The `,_jsx(_components.strong,{children:`Open in a Notebook Runtime`}),` dialog names the region and the path where the file is available in the Notebook Runtime.`]}),`\n`,_jsxs(_components.li,{children:[`Choose the `,_jsx(_components.strong,{children:`Size`}),` and other options if you need to, then click `,_jsx(_components.strong,{children:`Open`}),`. A new Notebook Runtime starts in the file’s region, in a new browser tab, and JupyterLab opens the file when it is ready.`]}),`\n`]}),`\n`,_jsx(Frame,{caption:`Open in a Notebook Runtime`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/open-in-notebook-dialog.jpg?fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=eac49f9331b02ab0fd30478ee93f9465`,alt:`The Open in a Notebook Runtime dialog`,\"data-og-width\":`1188`,width:`1188`,\"data-og-height\":`936`,height:`936`,\"data-path\":`images/develop/storage-management/file-explorer/open-in-notebook-dialog.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/open-in-notebook-dialog.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=3a031480a903237b753523a803ebe100 280w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/open-in-notebook-dialog.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=f38349541b3243b2b9a37a702c29517e 560w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/open-in-notebook-dialog.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=bb0d610037288f4be9097ce125ed8e9d 840w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/open-in-notebook-dialog.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=3ea16500d78bf9122ef97263cac5767f 1100w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/open-in-notebook-dialog.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=47cacda2587651da03ae696accfda34a 1650w, https://mintcdn.com/wherobots/MFfuMdEwn_AVjEYT/images/develop/storage-management/file-explorer/open-in-notebook-dialog.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=MFfuMdEwn_AVjEYT\u0026q=85\u0026s=a99b5d633f201331e6eefceb5b632d15 2500w`})}),`\n`,_jsxs(_components.p,{children:[`If your browser blocks the new tab, click `,_jsx(_components.strong,{children:`Open workspace`}),` in the message on the Code page.`]}),`\n`,_jsx(Heading,{level:`2`,id:`save-your-work-in-my-files`,children:`Save your work in My Files`}),`\n`,_jsxs(_components.p,{children:[`In JupyterLab, My Files is the `,_jsx(_components.strong,{children:`MY FILES`}),` panel. In a notebook terminal, it is `,_jsx(_components.code,{children:`/home/wherobots/workspace/my-files`}),`. Files in `,_jsx(_components.strong,{children:`MY FILES`}),` are kept across session restarts. Any other folder in the notebook’s file system is deleted when the session restarts.`]}),`\n`,_jsxs(_components.p,{children:[`If you used notebooks before My Files, your previous home folder is kept, either as the folder your notebook opens in or as the read-only `,_jsx(_components.code,{children:`_legacy_home_backup`}),` folder in My Files. See `,_jsx(_components.a,{href:`#if-you-used-notebooks-before-my-files`,children:`If you used notebooks before My Files`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Example notebooks in the `,_jsx(_components.strong,{children:`EXAMPLES`}),` panel are read-only. To change one, right-click it and choose `,_jsx(_components.strong,{children:`Copy to My Files`}),`. See `,_jsx(_components.a,{href:`/develop/notebook-management/jupyter-notebook-management#find-your-files`,children:`Find your files`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-long-changes-take`,children:`How long changes take`}),`\n`,_jsx(_components.p,{children:`Saving in a notebook is complete when Jupyter shows it as saved.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Change`}),_jsx(_components.th,{children:`Where it appears`}),_jsx(_components.th,{children:`When`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Save, create or rename in a notebook`}),_jsx(_components.td,{children:`Your notebooks in the same region`}),_jsx(_components.td,{children:`Immediately. When Jupyter shows a file as saved, it is stored and kept, even if your session restarts.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Upload or delete on the Code page, or upload, rename or delete with the CLI`}),_jsx(_components.td,{children:`Code page and CLI`}),_jsxs(_components.td,{children:[`The CLI shows the change immediately. On the Code page, your own changes show within a few seconds; changes made elsewhere appear when an open folder next refreshes itself, or when you click the `,_jsx(_components.strong,{children:`Refresh`}),` icon. A collapsed folder shows them when you open it.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Save, create or rename in a notebook`}),_jsx(_components.td,{children:`Code page and CLI`}),_jsx(_components.td,{children:`About a minute after the file’s last change`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Delete in a notebook`}),_jsx(_components.td,{children:`Code page and CLI`}),_jsx(_components.td,{children:`About a minute after the delete`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Upload in the Code page or the CLI`}),_jsx(_components.td,{children:`Notebook`}),_jsx(_components.td,{children:`Within a few seconds.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Delete in the Code page or the CLI`}),_jsx(_components.td,{children:`Notebook`}),_jsx(_components.td,{children:`Within a few seconds. When you delete many files at once, some can take up to about a minute. A deleted folder’s files disappear, but the empty folder stays in a running notebook.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`use-the-cli-in-scripts-and-agents`,children:`Use the CLI in scripts and agents`}),`\n`,_jsx(Heading,{level:`3`,id:`paths`,children:`Paths`}),`\n`,_jsx(_components.p,{children:`The CLI takes paths relative to the root of My Files.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A leading `,_jsx(_components.code,{children:`/`}),` is ignored: `,_jsx(_components.code,{children:`/projects/report.csv`}),` and `,_jsx(_components.code,{children:`projects/report.csv`}),` are the same file.`]}),`\n`,_jsxs(_components.li,{children:[`A trailing `,_jsx(_components.code,{children:`/`}),` names a folder.`]}),`\n`,_jsxs(_components.li,{children:[`Empty levels (`,_jsx(_components.code,{children:`projects//report.csv`}),`), `,_jsx(_components.code,{children:`.`}),` and `,_jsx(_components.code,{children:`..`}),` are refused before any request is sent.`]}),`\n`,_jsxs(_components.li,{children:[`To see the requests a command would send without sending them, add `,_jsx(_components.code,{children:`--dry-run`}),`. The CLI prints each request as a `,_jsx(_components.code,{children:`curl`}),` command. Without `,_jsx(_components.code,{children:`--region`}),`, one request is still sent to look up your Organization’s default region.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`wait-for-a-notebook’s-changes`,children:`Wait for a notebook’s changes`}),`\n`,_jsxs(_components.p,{children:[`In a script, check the file’s `,_jsx(_components.code,{children:`lastModified`}),` time instead of waiting a fixed time. If the file already exists, the CLI lists the previous version until the change arrives, so wait for the time to change. A listed name alone does not mean the new version has arrived. This example uses `,_jsx(_components.a,{href:`https://jqlang.org`,children:`jq`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`16`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`16`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`set`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -o`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pipefail`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Prints the file's lastModified time. Fails if the listing fails or the file is not listed yet.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`modified`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` wherobots`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-files`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ls`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` projects`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --output`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` json`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` jq`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -er`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '.[] | select(.name == \"analysis.ipynb\") | .lastModified'`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Run this before you save in the notebook`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`before`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`$(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`modified`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`||`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` before`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# After you save, wait until the stored copy has the new version.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# A failed listing, for example HTTP 429, is retried instead of ending the wait.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`until`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` now`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`$(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`modified`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) \u0026\u0026 [ `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$now`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` !=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$before`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]; `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`do`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` sleep`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 10`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`done`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`agentic-terminals`,children:`Agentic terminals`}),`\n`,_jsxs(_components.p,{children:[`To have an agentic terminal manage My Files for you, see `,_jsx(_components.a,{href:`/develop/cli#use-the-cli-from-an-agentic-terminal`,children:`Use the CLI from an agentic terminal`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`if-you-used-notebooks-before-my-files`,children:`If you used notebooks before My Files`}),`\n`,_jsx(_components.p,{children:`If you used Wherobots notebooks before My Files, your notebook opens in one of two layouts. Both keep your previous home folder.`}),`\n`,_jsx(Heading,{level:`3`,id:`your-notebook-opens-in-your-home-folder`,children:`Your notebook opens in your home folder`}),`\n`,_jsxs(_components.p,{children:[`Your home folder keeps working as before, and My Files is already there, at `,_jsx(_components.code,{children:`workspace/my-files`}),`. Copy the files you want into My Files:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`File browser:`}),` right-click a file or folder and select `,_jsx(_components.strong,{children:`Copy`}),`. Open `,_jsx(_components.code,{children:`workspace/my-files`}),`, right-click an empty area, and select `,_jsx(_components.strong,{children:`Paste`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Terminal:`}),` copy the folder’s contents with `,_jsx(_components.code,{children:`cp -r`}),`. This works whether or not the folder already exists in My Files:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`mkdir`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -p`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ~/workspace/my-files/projects`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`cp`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -r`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ~/projects/.`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ~/workspace/my-files/projects/`})]}),`\n`]})})}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`your-notebook-opens-in-my-files`,children:`Your notebook opens in My Files`}),`\n`,_jsxs(_components.p,{children:[`Your previous home folder is the `,_jsx(_components.code,{children:`_legacy_home_backup`}),` folder in `,_jsx(_components.strong,{children:`MY FILES`}),`, at `,_jsx(_components.code,{children:`/home/wherobots/workspace/my-files/_legacy_home_backup`}),` in a notebook terminal. It is read-only, so copy the files you want to keep working on out of it into My Files. On the Code page, `,_jsx(_components.code,{children:`_legacy_home_backup`}),` shows as an empty folder, because its files are reachable only from a notebook.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`File browser:`}),` open `,_jsx(_components.code,{children:`_legacy_home_backup`}),`, right-click a file or folder, and select `,_jsx(_components.strong,{children:`Copy`}),`. Open the folder in `,_jsx(_components.strong,{children:`MY FILES`}),` where you want it, right-click an empty area, and select `,_jsx(_components.strong,{children:`Paste`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Terminal:`}),` copy the folder’s contents with `,_jsx(_components.code,{children:`cp -r`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`mkdir`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -p`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ~/workspace/my-files/projects`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`cp`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -r`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ~/workspace/my-files/_legacy_home_backup/projects/.`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ~/workspace/my-files/projects/`})]}),`\n`]})})}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`In both layouts, the files you copy appear on the `,_jsx(_components.a,{href:`https://cloud.wherobots.com/code`,children:`Code`}),` page about a minute after the copy finishes.`]}),`\n`,_jsx(Heading,{level:`2`,id:`limitations`,children:`Limitations`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`500 MiB per file`}),` on the Code page and in the CLI.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Private to you.`}),` Other members of your Organization cannot see your My Files.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Each region is separate.`}),` A notebook can reach only the My Files of its own region. To work on a file from another region, use `,_jsx(_components.strong,{children:`Open File`}),` on the Code page.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Meant for notebooks, code and small files.`}),` For datasets, use `,_jsx(_components.a,{href:`/develop/storage-management/managed-storage`,children:`Managed Storage`}),` or an `,_jsx(_components.a,{href:`/develop/storage-management/s3-storage-integration`,children:`S3 storage integration`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`no such file or folder: \u003cpath>`,icon:`circle-question`,id:`no-such-file-or-folder-path`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Cause:`}),` The path does not exist in My Files in this region, or a file saved in a notebook in the last minute is not shown yet.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Check the path with `,_jsx(_components.code,{children:`wherobots files my-files ls \u003cfolder>`}),`, and pass `,_jsx(_components.code,{children:`--region`}),` if the file is in another region. For a notebook save, wait about a minute after the last change.`]})]}),_jsxs(Accordion,{title:`Files is not enabled for my-files in region \u003cregion>`,icon:`circle-question`,id:`files-is-not-enabled-for-my-files-in-region-region`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Cause:`}),` My Files is not available to you in that region.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Try another `,_jsx(_components.code,{children:`--region`}),`.`]})]}),_jsxs(Accordion,{title:`file is \u003cN> MB, exceeding 500 MB limit`,icon:`circle-question`,id:`file-is-n-mb-exceeding-500-mb-limit`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Cause:`}),` The file is larger than 500 MiB. The CLI message writes the limit as MB.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Split the file, or store it in `,_jsx(_components.a,{href:`/develop/storage-management/managed-storage`,children:`Managed Storage`}),` or an `,_jsx(_components.a,{href:`/develop/storage-management/s3-storage-integration`,children:`S3 storage integration`}),`.`]})]}),_jsxs(Accordion,{title:`HTTP 429 Rate exceeded`,icon:`circle-question`,id:`http-429-rate-exceeded`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Cause:`}),` You sent too many requests in a short time, for example during a bulk upload.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Wait, retry the failed files, and lower the number of parallel uploads. See `,_jsx(_components.a,{href:`#upload-files`,children:`Upload files`}),`.`]})]}),_jsxs(Accordion,{title:`A file I saved in a notebook is not on the Code page`,icon:`circle-question`,id:`a-file-i-saved-in-a-notebook-is-not-on-the-code-page`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Cause:`}),` The file is saved. The Code page shows it about a minute after the file’s last change.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Wait about a minute after your last save. Open folders update on their own. If the folder is collapsed, expand it.`]})]}),_jsxs(Accordion,{title:`A folder I deleted came back`,icon:`circle-question`,id:`a-folder-i-deleted-came-back`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Cause:`}),` A running notebook saved files in the folder during the last minute, for example in `,_jsx(_components.code,{children:`.ipynb_checkpoints`}),`. The delete missed those files, and they were copied back.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Delete folders from the notebook, or wait about a minute after the last save, then delete the folder again.`]})]})]}),`\n`,_jsxs(_components.p,{children:[`For sign-in errors, see `,_jsx(_components.a,{href:`/develop/cli#troubleshooting`,children:`Troubleshooting`}),` on the Wherobots CLI page.`]}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next steps`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Jupyter Notebook Management`,icon:`book`,href:`/develop/notebook-management/jupyter-notebook-management`,children:_jsx(_components.p,{children:`Find your files and run notebooks in JupyterLab.`})}),_jsx(Card,{title:`Managed Storage`,icon:`database`,href:`/develop/storage-management/managed-storage`,children:_jsx(_components.p,{children:`Store datasets for your Organization.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"File Explorer","sidebarTitle":"File Explorer","description":"Upload, browse and manage your notebooks and scripts in My Files from the Code page, JupyterLab and the Wherobots CLI.","keywords":["Files page","My Files","Code page"],"href":"/develop/storage-management/file-explorer"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Before you start","slug":"before-you-start","depth":2,"children":[]},{"title":"Choose a region","slug":"choose-a-region","depth":2,"children":[]},{"title":"Work with files and folders","slug":"work-with-files-and-folders","depth":2,"children":[{"title":"List a folder","slug":"list-a-folder","depth":3,"children":[]},{"title":"Create a folder","slug":"create-a-folder","depth":3,"children":[]},{"title":"Upload files","slug":"upload-files","depth":3,"children":[]},{"title":"Download a file","slug":"download-a-file","depth":3,"children":[]},{"title":"View a file","slug":"view-a-file","depth":3,"children":[]},{"title":"Rename a file","slug":"rename-a-file","depth":3,"children":[]},{"title":"Delete a file or folder","slug":"delete-a-file-or-folder","depth":3,"children":[]}]},{"title":"Open a file in a Notebook Runtime","slug":"open-a-file-in-a-notebook-runtime","depth":2,"children":[]},{"title":"Save your work in My Files","slug":"save-your-work-in-my-files","depth":2,"children":[]},{"title":"How long changes take","slug":"how-long-changes-take","depth":2,"children":[]},{"title":"Use the CLI in scripts and agents","slug":"use-the-cli-in-scripts-and-agents","depth":2,"children":[{"title":"Paths","slug":"paths","depth":3,"children":[]},{"title":"Wait for a notebook’s changes","slug":"wait-for-a-notebook’s-changes","depth":3,"children":[]},{"title":"Agentic terminals","slug":"agentic-terminals","depth":3,"children":[]}]},{"title":"If you used notebooks before My Files","slug":"if-you-used-notebooks-before-my-files","depth":2,"children":[{"title":"Your notebook opens in your home folder","slug":"your-notebook-opens-in-your-home-folder","depth":3,"children":[]},{"title":"Your notebook opens in My Files","slug":"your-notebook-opens-in-my-files","depth":3,"children":[]}]},{"title":"Limitations","slug":"limitations","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[]},{"title":"Next steps","slug":"next-steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/wherobots/af65d87e5cbbfaa8/redirect-default-hosts.js"],"subdomain":"wherobots","siteName":"Wherobots","title":"File Explorer - Wherobots","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T18:33:22.264Z","originalFileLocation":"develop/storage-management/file-explorer.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Upload, browse and manage your notebooks and scripts in My Files from the Code page, JupyterLab and the Wherobots CLI.\">\u003cmeta data-mint-head name=\"keywords\" content=\"Managed Apache Sedona, Apache Sedona, Wherobots docs, Wherobots documentation, Iceberg tables, Spatial SQL API, Wherobots Cloud Python SDK, RasterFlow, Map Matching, Spatial Data Catalog, Wherobots Airflow Provider\">\u003cmeta data-mint-head name=\"application-name\" content=\"Wherobots\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index, follow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/wherobots/pvz71JLOQQJkmmD3/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/wherobots/pvz71JLOQQJkmmD3/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/wherobots/pvz71JLOQQJkmmD3/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/wherobots/pvz71JLOQQJkmmD3/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/wherobots/pvz71JLOQQJkmmD3/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/wherobots/pvz71JLOQQJkmmD3/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/wherobots/pvz71JLOQQJkmmD3/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/wherobots/pvz71JLOQQJkmmD3/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/wherobots/pvz71JLOQQJkmmD3/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"File Explorer - Wherobots\">\u003cmeta data-mint-head property=\"og:description\" content=\"Upload, browse and manage your notebooks and scripts in My Files from the Code page, JupyterLab and the Wherobots CLI.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Wherobots\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.wherobots.com/develop/storage-management/file-explorer\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://wherobots.mintlify.site/_mintlify/api/og/v2?division=Storage+management\u0026amp;title=File+Explorer\u0026amp;description=Upload%2C+browse+and+manage+your+notebooks+and+scripts+in+My+Files+from+the+Code+page%2C+JupyterLab+and+the+Wherobots+CLI.\u0026amp;theme=ad650514d2ff8766a2ea2396\u0026amp;signature=ed44d4e4c19f08d6197c922e8a683d58639ce9b95bd3481d8e28b9c8d3da3640\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"File Explorer - Wherobots\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Upload, browse and manage your notebooks and scripts in My Files from the Code page, JupyterLab and the Wherobots CLI.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://wherobots.mintlify.site/_mintlify/api/og/v2?division=Storage+management\u0026amp;title=File+Explorer\u0026amp;description=Upload%2C+browse+and+manage+your+notebooks+and+scripts+in+My+Files+from+the+Code+page%2C+JupyterLab+and+the+Wherobots+CLI.\u0026amp;theme=ad650514d2ff8766a2ea2396\u0026amp;signature=ed44d4e4c19f08d6197c922e8a683d58639ce9b95bd3481d8e28b9c8d3da3640\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/wherobots/pvz71JLOQQJkmmD3/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Wherobots\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6612c5\">\u003cmeta data-mint-head name=\"googlebot\" content=\"index, follow\">\u003cmeta data-mint-head name=\"google-site-verification\" content=\"ERHB94F_PoM_qpM06mYclqitx8bvFFskIdV7VT8DT30\">\u003cmeta data-mint-head name=\"indexing\" content=\"all\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.wherobots.com/develop/storage-management/file-explorer\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/develop/storage-management/file-explorer.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.wherobots.com/#organization\",\"name\":\"Wherobots\",\"url\":\"https://docs.wherobots.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/wherobots/q2h_5BmXeWMz6JRH/logo/light.png?fit=max\u0026auto=format\u0026n=q2h_5BmXeWMz6JRH\u0026q=85\u0026s=5a1512dbd3547c3df4e8f4779a1e4cfa\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.wherobots.com#website\",\"name\":\"Wherobots\",\"url\":\"https://docs.wherobots.com\",\"publisher\":{\"@id\":\"https://docs.wherobots.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.wherobots.com/develop/storage-management/file-explorer#webpage\",\"url\":\"https://docs.wherobots.com/develop/storage-management/file-explorer\",\"name\":\"File Explorer\",\"description\":\"Upload, browse and manage your notebooks and scripts in My Files from the Code page, JupyterLab and the Wherobots CLI.\",\"dateModified\":\"2026-10-30T18:33:22.264Z\",\"isPartOf\":{\"@id\":\"https://docs.wherobots.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.wherobots.com/develop/storage-management/file-explorer#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.wherobots.com/develop/storage-management/file-explorer#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Storage management\",\"item\":\"https://docs.wherobots.com/develop/storage-management/storage\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"File Explorer\",\"item\":\"https://docs.wherobots.com/develop/storage-management/file-explorer\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.wherobots.com/develop/storage-management/file-explorer#article\",\"headline\":\"File Explorer\",\"name\":\"File Explorer\",\"description\":\"Upload, browse and manage your notebooks and scripts in My Files from the Code page, JupyterLab and the Wherobots CLI.\",\"url\":\"https://docs.wherobots.com/develop/storage-management/file-explorer\",\"mainEntityOfPage\":{\"@id\":\"https://docs.wherobots.com/develop/storage-management/file-explorer#webpage\"},\"dateModified\":\"2026-10-30T18:33:22.264Z\",\"keywords\":\"Files page, My Files, Code page\",\"publisher\":{\"@id\":\"https://docs.wherobots.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.wherobots.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Wherobots\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Wherobots","nav":{"global":null,"tabs":[{"tab":"Get started","pages":[{"title":"Get started","href":""}]},{"tab":"Build \u0026 Deploy","groups":[{"group":"Start here","icon":"rocket","pages":[{"title":"Build \u0026 Deploy","sidebarTitle":"Overview","href":"/develop/overview"},{"title":"Runtimes","href":"/develop/runtimes"},{"title":"API Keys","href":"/get-started/wherobots-cloud/api-keys"},{"title":"Wherobots Spatial SQL API and SDKs","href":"/develop/spatial-sql-api"},{"title":"Install Wherobots CLI","href":"/develop/cli"}]},{"group":"Notebooks","icon":"laptop-code","pages":[{"title":"Notebook Runtime Management","href":"/develop/notebook-management/notebook-instance-management"},{"title":"Jupyter Notebook Management","href":"/develop/notebook-management/jupyter-notebook-management"},{"title":"Environment Presets","href":"/develop/notebook-management/environment-presets"}]},{"group":"Editors and AI assistants","icon":"microchip","pages":[{"title":"Get Started with Agentic Development","sidebarTitle":"Get Started","href":"/develop/agentic-tools"},{"title":"Set Up Wherobots in Your Editor","sidebarTitle":"Editors","href":"/develop/agentic-tools/editors"},{"title":"Set Up Wherobots in an AI Assistant","sidebarTitle":"AI assistants","href":"/develop/agentic-tools/ai-assistants"}]},{"group":"VS Code extension","icon":"code","pages":[{"title":"Workspaces \u0026 Usage","href":"/develop/vscode-extension/workspaces"},{"title":"Browse Your Data","sidebarTitle":"Browse Your Data","href":"/develop/vscode-extension/integrate-your-data"},{"title":"AI-Assisted Notebook Development","href":"/develop/vscode-extension/notebooks"},{"title":"Submit Job Runs","href":"/develop/vscode-extension/jobs"},{"title":"Extension Settings","sidebarTitle":"Settings","href":"/develop/vscode-extension/settings"}]},{"group":"MCP server and agent skills","icon":"plug","pages":[{"title":"Wherobots MCP Server","href":"/develop/mcp/mcp-server-overview"},{"title":"MCP Server Best Practices and Usage","href":"/develop/mcp/mcp-server-usage"},{"title":"Install Agent Skills","sidebarTitle":"Agent Skills","href":"/develop/agent-skills"}]},{"group":"dbt","icon":"cubes-stacked","pages":[{"title":"Wherobots dbt Adapter","href":"/develop/dbt/index"},{"title":"Materializations and Incremental Strategies","sidebarTitle":"Materializations","href":"/develop/dbt/materializations"},{"title":"Spatial Data in dbt Models","sidebarTitle":"Spatial data","href":"/develop/dbt/spatial-data"}]},{"group":"Apache Airflow","icon":"clock","pages":[{"title":"Wherobots Apache Airflow Provider","sidebarTitle":"Wherobots Airflow Provider","href":"/develop/airflow-provider"},{"title":"WherobotsRunOperator - Job Run Constructor","sidebarTitle":"WherobotsRunOperator","href":"/develop/run-operator"},{"title":"Wherobots SQL Operator","href":"/develop/sql-operator"}]},{"group":"Storage management","icon":"hard-drive","pages":[{"title":"Notebook and Data Storage","description":"Choose where to store your notebooks, code and data in Wherobots Cloud: My Files, Wherobots Managed Storage, or an S3 storage integration.","href":"/develop/storage-management/storage"},{"title":"File Explorer","sidebarTitle":"File Explorer","href":"/develop/storage-management/file-explorer"},{"title":"Managed Storage","description":"Store and manage data in Wherobots Managed Storage, ensuring accessibility for geospatial analysis and processing.","href":"/develop/storage-management/managed-storage"},{"title":"S3 Storage Integration","href":"/develop/storage-management/s3-storage-integration"},{"title":"Setting up CORS","href":"/tutorials/wherobotsdb/tile-generation/cors"}]},{"group":"Task schedules","icon":"calendar-clock","pages":[{"title":"Create a schedule","href":"/develop/task-schedules/create-a-schedule"},{"title":"Scripts and processing windows","href":"/develop/task-schedules/scripts-and-windows"},{"title":"Monitor and recover","href":"/develop/task-schedules/monitor-and-recover"}]},{"group":"Deployment and monitoring","icon":"server","pages":[{"title":"Bring Your Own Cloud (BYOC)","href":"/develop/storage-management/byoc"},{"title":"Bring Your Own Spark (BYOS)","sidebarTitle":"BYOS overview","href":"/develop/deployment-options/byos-overview"},{"title":"Bring Your Own Spark (AWS EMR)","href":"/develop/deployment-options/byos-aws-emr"},{"title":"Bring Your Own Spark (Databricks)","href":"/develop/deployment-options/byos-databricks"},{"title":"Usage History","href":"/develop/workload-history"}]}]},{"tab":"Spatial Data Engineering","pages":[{"title":"Spatial Data Engineering","href":"/data-engineering"}]},{"tab":"AI for Earth","pages":[{"title":"AI for Earth","href":"/ai-for-earth"}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/reference/overview"}]},{"tab":"Administration","pages":[{"title":"Administration","href":"/get-started/organization-management/overview"}]},{"tab":"Examples","pages":[{"title":"Examples","href":"/examples"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]},{"tab":"Terms \u0026 Support","pages":[{"title":"Terms \u0026 Support","href":"/terms-of-service"}]}]},"basePath":"","title":"File Explorer - Wherobots","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-DvzxQbD0.js","DynamicMarkdown-mQG_iQiE.js","zoom-image-lightbox-BFbLClTf.js","lightbox-handle-r17bVUz3.js"]}