zrok/docs/guides/drives/cli/index.html

85 lines
68 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-guides/drives/cli" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.1.0">
<title data-rh="true">The Drives CLI | Zrok</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.zrok.io/docs/guides/drives/cli/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="The Drives CLI | Zrok"><meta data-rh="true" name="description" content="The zrok drives CLI tools allow for simple, ergonomic management and synchronization of local and remote files."><meta data-rh="true" property="og:description" content="The zrok drives CLI tools allow for simple, ergonomic management and synchronization of local and remote files."><link data-rh="true" rel="icon" href="/img/space-ziggy.png"><link data-rh="true" rel="canonical" href="https://docs.zrok.io/docs/guides/drives/cli/"><link data-rh="true" rel="alternate" href="https://docs.zrok.io/docs/guides/drives/cli/" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.zrok.io/docs/guides/drives/cli/" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://CO73R59OLO-dsn.algolia.net" crossorigin="anonymous"><link rel="preconnect" href="https://www.googletagmanager.com">
<script>window.dataLayer=window.dataLayer||[]</script>
<script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElement(a);r.async=!0,r.src="https://www.googletagmanager.com/gtm.js?id=GTM-MDFLZPK8",m.parentNode.insertBefore(r,m)}(window,document,"script","dataLayer")</script>
<link rel="search" type="application/opensearchdescription+xml" title="Zrok" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.e053e05e.css">
<script src="/assets/js/runtime~main.cdb40b39.js" defer="defer"></script>
<script src="/assets/js/main.fba98932.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MDFLZPK8" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"dark")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a href="https://zrok.io" target="_self" rel="noopener noreferrer" class="navbar__brand"><div class="navbar__logo"><img src="/img/space-ziggy.png" alt="Ziggy Goes to Space" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/space-ziggy.png" alt="Ziggy Goes to Space" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div><b class="navbar__title text--truncate">zrok</b></a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/docs/getting-started/">Docs</a><a href="https://github.com/orgs/openziti/projects/16" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Roadmap<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://github.com/openziti/zrok" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/docs/concepts/">Concepts</a><button aria-label="Expand sidebar category &#x27;Concepts&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/docs/category/guides/">Guides</a><button aria-label="Collapse sidebar category &#x27;Guides&#x27;" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/docs/guides/install/">Install</a><button aria-label="Expand sidebar category &#x27;Install&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/guides/frontdoor/">frontdoor</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/guides/permission-modes/">Permission Modes</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/docs/guides/docker-share/">Docker Share</a><button aria-label="Expand sidebar category &#x27;Docker Share&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/docs/category/self-hosting/">Self Hosting</a><button aria-label="Expand sidebar category &#x27;Self Hosting&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" tabindex="0" href="/docs/guides/drives/cli/">drives</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/docs/guides/drives/cli/">The Drives CLI</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/guides/vpn/">VPN</a></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/docs/category/guides/"><span itemprop="name">Guides</span></a><meta itemprop="position" content="1"></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">drives</span><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">The Drives CLI</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><h1>The Drives CLI</h1>
<p>The zrok drives CLI tools allow for simple, ergonomic management and synchronization of local and remote files.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="sharing-a-drive">Sharing a Drive<a href="#sharing-a-drive" class="hash-link" aria-label="Direct link to Sharing a Drive" title="Direct link to Sharing a Drive"></a></h2>
<p>Virtual drives are shared through the <code>zrok</code> CLI using the <code>--backend-mode drive</code> flag through the <code>zrok share</code> command, using either the <code>public</code> or <code>private</code> sharing modes. We&#x27;ll use the <code>private</code> sharing mode for this example:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ mkdir /tmp/junk</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok share private --headless --backend-mode drive /tmp/junk</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.124] INFO sdk-golang/ziti.(*listenerManager).createSessionWithBackoff: {session token=[cf640aac-2706-49ae-9cc9-9a497d67d9c5]} new service session</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.145] INFO main.(*sharePrivateCommand).run: allow other to access your share with the following command:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">zrok access private wkcfb58vj51l</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>The command shown above creates an ephemeral, <code>private</code> drive share pointed at the local <code>/tmp/junk</code> folder.</p>
<p>Notice that the share token allocated by <code>zrok</code> is <code>wkcfb58vj51l</code>. We&#x27;ll use that share token to identify our virtual drive in the following operations.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="working-with-a-private-drive-share">Working with a Private Drive Share<a href="#working-with-a-private-drive-share" class="hash-link" aria-label="Direct link to Working with a Private Drive Share" title="Direct link to Working with a Private Drive Share"></a></h2>
<p>First, let&#x27;s copy a file into our virtual drive using the <code>zrok copy</code> command:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok copy LICENSE zrok://wkcfb58vj51l</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.119] INFO zrok/drives/sync.OneWay: =&gt; /LICENSE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">copy complete!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>We used the URL scheme <code>zrok://&lt;shareToken&gt;</code> to refer to the private virtual drive we allocated above using the <code>zrok share private</code> command. Use <code>zrok://</code> URLs with the drives CLI tools to refer to contents of private virtual drives.</p>
<p>Next, let&#x27;s get a directory listing of the virtual drive:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok ls zrok://wkcfb58vj51l</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">┌──────┬─────────┬─────────┬───────────────────────────────┐</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ TYPE │ NAME │ SIZE │ MODIFIED │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├──────┼─────────┼─────────┼───────────────────────────────┤</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ │ LICENSE │ 11.3 kB │ 2024-01-19 12:16:46 -0500 EST │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">└──────┴─────────┴─────────┴───────────────────────────────┘</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>We can make directories on the virtual drive:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok mkdir zrok://wkcfb58vj51l/stuff</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok ls zrok://wkcfb58vj51l</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">┌──────┬─────────┬─────────┬───────────────────────────────┐</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ TYPE │ NAME │ SIZE │ MODIFIED │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├──────┼─────────┼─────────┼───────────────────────────────┤</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ │ LICENSE │ 11.3 kB │ 2024-01-19 12:16:46 -0500 EST │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ DIR │ stuff │ │ │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">└──────┴─────────┴─────────┴───────────────────────────────┘</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>We can copy the contents of a local directory into the new directory on the virtual drive:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ ls -l util/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">total 20</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">-rw-rw-r-- 1 michael michael 329 Jul 21 13:17 email.go</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">-rw-rw-r-- 1 michael michael 456 Jul 21 13:17 headers.go</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">-rw-rw-r-- 1 michael michael 609 Jul 21 13:17 proxy.go</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">-rw-rw-r-- 1 michael michael 361 Jul 21 13:17 size.go</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">-rw-rw-r-- 1 michael michael 423 Jan 2 11:57 uniqueName.go</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok copy util/ zrok://wkcfb58vj51l/stuff</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.123] INFO zrok/drives/sync.OneWay: =&gt; /email.go</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.194] INFO zrok/drives/sync.OneWay: =&gt; /headers.go</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.267] INFO zrok/drives/sync.OneWay: =&gt; /proxy.go</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.337] INFO zrok/drives/sync.OneWay: =&gt; /size.go</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.408] INFO zrok/drives/sync.OneWay: =&gt; /uniqueName.go</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">copy complete!</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok ls zrok://wkcfb58vj51l/stuff</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">┌──────┬───────────────┬───────┬───────────────────────────────┐</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ TYPE │ NAME │ SIZE │ MODIFIED │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├──────┼───────────────┼───────┼───────────────────────────────┤</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ │ email.go │ 329 B │ 2024-01-19 12:26:45 -0500 EST │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ │ headers.go │ 456 B │ 2024-01-19 12:26:45 -0500 EST │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ │ proxy.go │ 609 B │ 2024-01-19 12:26:45 -0500 EST │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ │ size.go │ 361 B │ 2024-01-19 12:26:45 -0500 EST │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ │ uniqueName.go │ 423 B │ 2024-01-19 12:26:45 -0500 EST │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">└──────┴───────────────┴───────┴───────────────────────────────┘</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>And we can remove files and directories from the virtual drive:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok rm zrok://wkcfb58vj51l/LICENSE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok ls zrok://wkcfb58vj51l</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">┌──────┬───────┬──────┬──────────┐</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ TYPE │ NAME │ SIZE │ MODIFIED │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├──────┼───────┼──────┼──────────┤</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ DIR │ stuff │ │ │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">└──────┴───────┴──────┴──────────┘</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok rm zrok://wkcfb58vj51l/stuff</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok ls zrok://wkcfb58vj51l</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">┌──────┬──────┬──────┬──────────┐</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ TYPE │ NAME │ SIZE │ MODIFIED │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├──────┼──────┼──────┼──────────┤</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">└──────┴──────┴──────┴──────────┘</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="working-with-public-shares">Working with Public Shares<a href="#working-with-public-shares" class="hash-link" aria-label="Direct link to Working with Public Shares" title="Direct link to Working with Public Shares"></a></h2>
<p>Public shares work very similarly to private shares, they just use a different URL scheme:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok share public --headless --backend-mode drive /tmp/junk</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.708] INFO sdk-golang/ziti.(*listenerManager).createSessionWithBackoff: {session token=[05e0f48b-242b-4fd9-8edb-259488535c47]} new service session</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.878] INFO main.(*sharePublicCommand).run: access your zrok share at the following endpoints:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> https://6kiww4bn7iok.share.zrok.io</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>The same commands, with a different URL scheme work with the <code>zrok</code> drives CLI:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok copy util/ https://6kiww4bn7iok.share.zrok.io</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.268] INFO zrok/drives/sync.OneWay: =&gt; /email.go</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.406] INFO zrok/drives/sync.OneWay: =&gt; /headers.go</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.530] INFO zrok/drives/sync.OneWay: =&gt; /proxy.go</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.655] INFO zrok/drives/sync.OneWay: =&gt; /size.go</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.714] INFO zrok/drives/sync.OneWay: =&gt; /uniqueName.go</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">copy complete!</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">michael@fourtyfour Fri Jan 19 12:42:52 ~/Repos/nf/zrok </span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok ls https://6kiww4bn7iok.share.zrok.io</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">┌──────┬───────────────┬───────┬───────────────────────────────┐</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ TYPE │ NAME │ SIZE │ MODIFIED │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├──────┼───────────────┼───────┼───────────────────────────────┤</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ │ email.go │ 329 B │ 2023-07-21 13:17:56 -0400 EDT │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ │ headers.go │ 456 B │ 2023-07-21 13:17:56 -0400 EDT │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ │ proxy.go │ 609 B │ 2023-07-21 13:17:56 -0400 EDT │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ │ size.go │ 361 B │ 2023-07-21 13:17:56 -0400 EDT │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ │ uniqueName.go │ 423 B │ 2024-01-02 11:57:14 -0500 EST │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">└──────┴───────────────┴───────┴───────────────────────────────┘</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>For basic authentication provided by public shares, the <code>zrok</code> drives CLI offers the <code>--basic-auth</code> flag, which accepts a <code>&lt;username&gt;:&lt;password&gt;</code> parameter to specify the authentication for the public virtual drive (if it&#x27;s required).</p>
<p>Alternatively, the authentication can be set using the <code>ZROK_DRIVES_BASIC_AUTH</code> environment variable:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ export ZROK_DRIVES_BASIC_AUTH=username:password</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="one-way-synchronization">One-way Synchronization<a href="#one-way-synchronization" class="hash-link" aria-label="Direct link to One-way Synchronization" title="Direct link to One-way Synchronization"></a></h2>
<p>The <code>zrok copy</code> command includes a <code>--sync</code> flag, which only copies files detected as <em>modified</em>. <code>zrok</code> considers a file with the same modification timestamp and size to be the same. Of course, this is not a strong guarantee that the files are equivalent. Future <code>zrok</code> drives versions will provide a cryptographically strong mechanism (a-la <code>rsync</code> and friends) to guarantee that files and trees of files are synchronized.</p>
<p>For now, the <code>--sync</code> flag provides a convenience mechanism to allow resuming copies of large file trees and provide a reasonable guarantee that the trees are in sync.</p>
<p>Let&#x27;s take a look at <code>zrok copy --sync</code> in action:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok copy --sync docs/ https://glmv049c62p7.share.zrok.io</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.636] INFO zrok/drives/sync.OneWay: =&gt; /_attic/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.760] INFO zrok/drives/sync.OneWay: =&gt; /_attic/network/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.816] INFO zrok/drives/sync.OneWay: =&gt; /_attic/network/_category_.json</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.928] INFO zrok/drives/sync.OneWay: =&gt; /_attic/network/prod/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.987] INFO zrok/drives/sync.OneWay: =&gt; /_attic/network/prod/ziti-ctrl.service</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 1.048] INFO zrok/drives/sync.OneWay: =&gt; /_attic/network/prod/ziti-ctrl.yml</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 1.107] INFO zrok/drives/sync.OneWay: =&gt; /_attic/network/prod/ziti-router0.service</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 1.167] INFO zrok/drives/sync.OneWay: =&gt; /_attic/network/prod/ziti-router0.yml</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 1.218] INFO zrok/drives/sync.OneWay: =&gt; /_attic/network/prod/zrok-access-public.service</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 1.273] INFO zrok/drives/sync.OneWay: =&gt; /_attic/network/prod/zrok-ctrl.service</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 1.328] INFO zrok/drives/sync.OneWay: =&gt; /_attic/network/prod/zrok-ctrl.yml</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 1.382] INFO zrok/drives/sync.OneWay: =&gt; /_attic/network/prod/zrok.io-network-skeleton.md</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 1.447] INFO zrok/drives/sync.OneWay: =&gt; /_attic/overview.md</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 1.572] INFO zrok/drives/sync.OneWay: =&gt; /_attic/sharing/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 1.622] INFO zrok/drives/sync.OneWay: =&gt; /_attic/sharing/_category_.json</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 1.673] INFO zrok/drives/sync.OneWay: =&gt; /_attic/sharing/reserved_services.md</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 1.737] INFO zrok/drives/sync.OneWay: =&gt; /_attic/sharing/sharing_modes.md</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 1.793] INFO zrok/drives/sync.OneWay: =&gt; /_attic/v0.2_account_requests.md</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 1.902] INFO zrok/drives/sync.OneWay: =&gt; /_attic/v0.4_limits.md</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">...</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 9.691] INFO zrok/drives/sync.OneWay: =&gt; /images/zrok_web_ui_empty_shares.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 9.812] INFO zrok/drives/sync.OneWay: =&gt; /images/zrok_web_ui_new_environment.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 9.870] INFO zrok/drives/sync.OneWay: =&gt; /images/zrok_zoom_to_fit.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">copy complete!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>Because the target drive was empty, <code>zrok copy --sync</code> copied the entire contents of the local <code>docs/</code> tree into the virtual drive. However, if we run that command again, we get:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok copy --sync docs/ https://glmv049c62p7.share.zrok.io</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">copy complete!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>The virtual drive contents are already in sync with the local filesystem tree, so there is nothing for it to copy.</p>
<p>Let&#x27;s alter the contents of the drive and run the <code>--sync</code> again:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok rm https://glmv049c62p7.share.zrok.io/images</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok copy --sync docs/ https://glmv049c62p7.share.zrok.io</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.364] INFO zrok/drives/sync.OneWay: =&gt; /images/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.456] INFO zrok/drives/sync.OneWay: =&gt; /images/zrok.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.795] INFO zrok/drives/sync.OneWay: =&gt; /images/zrok_cover.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.866] INFO zrok/drives/sync.OneWay: =&gt; /images/zrok_deployment.drawio</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">...</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 2.254] INFO zrok/drives/sync.OneWay: =&gt; /images/zrok_web_ui_empty_shares.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 2.340] INFO zrok/drives/sync.OneWay: =&gt; /images/zrok_web_ui_new_environment.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 2.391] INFO zrok/drives/sync.OneWay: =&gt; /images/zrok_zoom_to_fit.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">copy complete!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>Because we removed the <code>images/</code> tree from the virtual drive, <code>zrok copy --sync</code> detected this and copied the local <code>images/</code> tree back onto the virtual drive.</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="drive-to-drive-copies-and-synchronization">Drive-to-Drive Copies and Synchronization<a href="#drive-to-drive-copies-and-synchronization" class="hash-link" aria-label="Direct link to Drive-to-Drive Copies and Synchronization" title="Direct link to Drive-to-Drive Copies and Synchronization"></a></h2>
<p>The <code>zrok copy</code> CLI can operate on pairs of virtual drives remotely, without ever having to store files locally. This allow for drive-to-drive copies and synchronization.</p>
<p>Here are a couple of examples:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok copy --sync https://glmv049c62p7.share.zrok.io https://glmv049c62p7.share.zrok.io</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">copy complete!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>Specifying the same URL for both the source and the target of a <code>--sync</code> operation should always result in nothing being copied... they are the same drive with the same state.</p>
<p>We can copy files between two virtual drives with a single command:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok copy --sync https://glmv049c62p7.share.zrok.io zrok://hsml272j3xzf</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 1.396] INFO zrok/drives/sync.OneWay: =&gt; /_attic/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 2.083] INFO zrok/drives/sync.OneWay: =&gt; /_attic/overview.md</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 2.704] INFO zrok/drives/sync.OneWay: =&gt; /_attic/sharing/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">...</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 118.240] INFO zrok/drives/sync.OneWay: =&gt; /images/zrok_web_console_empty.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 118.920] INFO zrok/drives/sync.OneWay: =&gt; /images/zrok_enable_modal.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 119.589] INFO zrok/drives/sync.OneWay: =&gt; /images/zrok_cover.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 120.214] INFO zrok/drives/sync.OneWay: =&gt; /getting-started.mdx</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">copy complete!</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok copy --sync https://glmv049c62p7.share.zrok.io zrok://hsml272j3xzf</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">copy complete!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="copying-from-drives-to-the-local-filesystem">Copying from Drives to the Local Filesystem<a href="#copying-from-drives-to-the-local-filesystem" class="hash-link" aria-label="Direct link to Copying from Drives to the Local Filesystem" title="Direct link to Copying from Drives to the Local Filesystem"></a></h2>
<p>In the current version of the drives CLI, <code>zrok copy</code> always assumes the destination is a directory. There is currently no way to do:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok copy somefile someotherfile</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>What you&#x27;ll end up with on the local filesystem is:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">somefile</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">someotherfile/somefile</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>It&#x27;s in the backlog to support file destinations in a future release of <code>zrok</code>. So, when using <code>zrok copy</code>, always take note of the destination.</p>
<p><code>zrok copy</code> supports a default destination of <code>file://.</code>, so you can do single parameter <code>zrok copy</code> commands like this:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok ls https://azc47r3cwjds.share.zrok.io</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">┌──────┬─────────┬─────────┬───────────────────────────────┐</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ TYPE │ NAME │ SIZE │ MODIFIED │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├──────┼─────────┼─────────┼───────────────────────────────┤</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ │ LICENSE │ 11.3 kB │ 2023-07-21 13:17:56 -0400 EDT │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">└──────┴─────────┴─────────┴───────────────────────────────┘</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok copy https://azc47r3cwjds.share.zrok.io/LICENSE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.260] INFO zrok/drives/sync.OneWay: =&gt; /LICENSE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">copy complete!</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ ls -l</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">total 12</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">-rw-rw-r-- 1 michael michael 11346 Jan 19 13:29 LICENSE</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>You can also specify a local folder as the destination for your copy:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok copy https://azc47r3cwjds.share.zrok.io/LICENSE /tmp/inbox</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.221] INFO zrok/drives/sync.OneWay: =&gt; /LICENSE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">copy complete! </span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ l /tmp/inbox</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">total 12</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">-rw-rw-r-- 1 michael michael 11346 Jan 19 13:30 LICENSE</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="unique-names-and-reserved-shares">Unique Names and Reserved Shares<a href="#unique-names-and-reserved-shares" class="hash-link" aria-label="Direct link to Unique Names and Reserved Shares" title="Direct link to Unique Names and Reserved Shares"></a></h2>
<p>Private reserved shares with unque names can be particularly useful with the drives CLI:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok reserve private -b drive --unique-name mydrive /tmp/junk</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.315] INFO main.(*reserveCommand).run: your reserved share token is &#x27;mydrive&#x27;</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok share reserved --headless mydrive</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.289] INFO main.(*shareReservedCommand).run: sharing target: &#x27;/tmp/junk&#x27;</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.289] INFO main.(*shareReservedCommand).run: using existing backend proxy endpoint: /tmp/junk</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.767] INFO sdk-golang/ziti.(*listenerManager).createSessionWithBackoff: {session token=[d519a436-9fb5-4207-afd5-7cbc28fb779a]} new service session</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[ 0.927] INFO main.(*shareReservedCommand).run: use this command to access your zrok share: &#x27;zrok access private mydrive&#x27;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>This makes working with <code>zrok://</code> URLs particularly convenient:</p>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ zrok ls zrok://mydrive</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">┌──────┬─────────┬─────────┬───────────────────────────────┐</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ TYPE │ NAME │ SIZE │ MODIFIED │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├──────┼─────────┼─────────┼───────────────────────────────┤</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ │ LICENSE │ 11.3 kB │ 2023-07-21 13:17:56 -0400 EDT │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">└──────┴─────────┴─────────┴───────────────────────────────┘</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="future-enhancements">Future Enhancements<a href="#future-enhancements" class="hash-link" aria-label="Direct link to Future Enhancements" title="Direct link to Future Enhancements"></a></h2>
<p>Coming in a future release of <code>zrok</code> drives are features like:</p>
<ul>
<li>two-way synchronization between multiple hosts... allowing for shared &quot;dropbox-like&quot; usage scenarios between multiple environments</li>
<li>better ergonomics for single-file destinations</li>
</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/openziti/zrok/blob/main/docs/../docs/guides/drives/cli.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/guides/self-hosting/instance-configuration/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Instance Config</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/guides/vpn/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">VPN</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#sharing-a-drive" class="table-of-contents__link toc-highlight">Sharing a Drive</a></li><li><a href="#working-with-a-private-drive-share" class="table-of-contents__link toc-highlight">Working with a Private Drive Share</a></li><li><a href="#working-with-public-shares" class="table-of-contents__link toc-highlight">Working with Public Shares</a></li><li><a href="#one-way-synchronization" class="table-of-contents__link toc-highlight">One-way Synchronization</a></li><li><a href="#drive-to-drive-copies-and-synchronization" class="table-of-contents__link toc-highlight">Drive-to-Drive Copies and Synchronization</a></li><li><a href="#copying-from-drives-to-the-local-filesystem" class="table-of-contents__link toc-highlight">Copying from Drives to the Local Filesystem</a></li><li><a href="#unique-names-and-reserved-shares" class="table-of-contents__link toc-highlight">Unique Names and Reserved Shares</a></li><li><a href="#future-enhancements" class="table-of-contents__link toc-highlight">Future Enhancements</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2024 NetFoundry Inc. Built with Docusaurus.</div></div></div></footer></div>
</body>
</html>