Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mountain Duck 5 #279

Draft
wants to merge 31 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
446bdcd
Spotlight is supported for _Integrated_ connect mode.
dkocher Oct 9, 2022
458cdb6
Dragging files will move by default in Finder in _Integrated_ connect…
dkocher Oct 9, 2022
ff0f6d4
Custom mount not supported in _Integrated_ connect mode.
dkocher Oct 9, 2022
2946948
Custom cache location not supported in _Integrated_ connect mode.
dkocher Oct 9, 2022
1613380
Add note about OS cache management.
dkocher Oct 9, 2022
c2d9fc0
Pseudo locking not supported.
dkocher Oct 9, 2022
7a58cba
Add _Integrated_ mode.
dkocher Oct 9, 2022
30cfb36
Add but always in `~/Library/CloudStorage`
dkocher Oct 17, 2022
37fc790
Add additional icons shown in Finder with file provider.
dkocher Oct 28, 2022
1b34080
Add note that opening files from history in applications may fail bec…
dkocher Oct 28, 2022
84c1f97
New system requirements.
dkocher Oct 28, 2022
fd484ee
Add page for _Integrated_ mode.
dkocher Jul 12, 2023
1d2694e
Invert images.
dkocher Jul 12, 2023
3210de7
Add Integrated connect mode to table.
dkocher Oct 25, 2023
ce36401
Remove not not applicable.
dkocher Nov 30, 2023
cc698dc
Add links to pages.
dkocher Nov 30, 2023
02dc367
Change to headings.
dkocher Nov 30, 2023
8d9f038
Revise sync status documentation with additional file provider icons.
dkocher Nov 30, 2023
d3d8889
Optional Driver Installation
dkocher Nov 30, 2023
422faef
Review
Cassie205 Jan 30, 2024
f2d2ab7
Add Limitations
Cassie205 Jan 30, 2024
00683c9
Issue #458
Cassie205 Jan 30, 2024
d0ff0f6
Add "Network Volume"
dkocher Feb 12, 2024
4a050ee
QuickLook requires offline file.
dkocher Oct 9, 2022
a647c0b
Add note about OS cache management.
dkocher Oct 9, 2022
4fed377
Review
Cassie205 Jan 30, 2024
fa9f2b1
Add info for custom versioning Mountain Duck
Cassie205 Jun 28, 2024
25ac18c
Review
dkocher Sep 27, 2024
acc10f6
Review
dkocher Sep 27, 2024
6ffdb56
Formatting
dkocher Sep 27, 2024
3d07755
Merge branch 'main' into mountainduck/5
dkocher Dec 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mountainduck/_images/File_Provider_Error.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mountainduck/_images/File_Provider_Ignored.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mountainduck/_images/Prompt_Delete_Cache.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
93 changes: 54 additions & 39 deletions mountainduck/connect/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,73 +4,88 @@ Connect mode
:::{toctree}
:hidden:
:titlesonly:
integrated
sync
online
:::

When connecting to a server, you can choose between *[Online](online.md)* and *[Smart Synchronization](sync.md)* connect
mode.
When connecting to a server, you can choose between *[Online](online.md)*, *[Smart Synchronization](sync.md)*, and
*[Integrated](integrated.md)* connect
mode:

::::{tabs}
:::{tab} Integrated

The [_Integrated_ connect mode](integrated.md) synchronizes files and folders from a directory on the local disk with
support from macOS and Windows.

:::
:::{tab} Online

In _Online_ connect mode, changes to a file are immediately uploaded and in sync when an application has finished saving a file.
Using [_Online_ connect mode](online.md), changes to a file are immediately uploaded and in sync when an application has
finished saving a file.

:::
:::{tab} Smart Synchronization

In _Smart Synchronization_ connect mode, files are copied to a local cache for faster access prior synchronization with the server in the background.
In [_Smart Synchronization_ connect mode](sync.md), files are copied to a local cache for faster access prior
synchronization with the server in the background.

:::
::::

## Feature Comparison

| | **Online** | **Smart Synchronization** |
|------------------------------------------|-----------------------------------------------------------------------|-------------------------------------------------------------------------------|
| **Offline Access** | – | Save files in cache on disk for access with no server connectivity |
| **Index Files** | – | Index folder contents in cache on disk for access with no server connectivity |
| **Buffer file contents** | ︎Temporarily save opened files for faster access later | Temporarily save opened files to copy to cache on disk |
| **Synchronization** | Changes are immediately uploaded | Synchronize changes in the background |
| **Transfer Progress** | Upload shown in progress window in _Finder.app_ or _Windows Explorer_ | Uploads shown in the status bar (macOS) or taskbar (Windows) |
| **[Recent Files](sync.md#recent-files)** | – | Available in the status bar (macOS) or taskbar (Windows) |
| **[Lock Files](../locking.md)** | ✔︎ | ✔ |
| **[Share Files](../share.md)** | ✔ | ✔ |
| | **Online** | **Smart Synchronization** | **Integrated** |
|------------------------------------------|-----------------------------------------------------------------------|-------------------------------------------------------------------------------|-------------------------------------------------------------|
| **Network Volume** | ✔ | ✔ | – |
| **Offline Access** | – | ✔ Save files in cache on disk for access with no server connectivity | ✔ |
| **Index Files** | – | Index folder contents in cache on disk for access with no server connectivity | – |
| **Buffer file contents** | ︎Temporarily save opened files for faster access later | Temporarily save opened files to copy to cache on disk | – |
| **Synchronization** | Changes are immediately uploaded | Synchronize changes in the background | ✔ |
| **Transfer Progress** | Upload shown in progress window in _Finder.app_ or _Windows Explorer_ | Uploads shown in the status bar (macOS) or taskbar (Windows) | Uploads shown in progress icon in Finder & Windows Explorer |
| **[Recent Files](sync.md#recent-files)** | – | Available in the status bar (macOS) or taskbar (Windows) | ✔ |
| **[Lock Files](../locking.md)** | ✔︎ | ✔ | – |
| **[Share Files](../share.md)** | ✔ | ✔ | ✔ |

## Quota Support

Mountain Duck displays the overall quota present on the server as available disk space on the mounted volume.

| Protocol | Support |
|--------------------------| :---: |
| [Local Disk](../../protocols/index.md#local-disk) | ✅ |
| [SFTP](../../protocols/sftp/index.md#free-space-calculation-is-incorrect) | ✅ |
| [FTP](../../protocols/ftp.md) | ❌ |
| [WebDAV](../../protocols/webdav/index.md) | ✅ |
| [Google Drive](../../protocols/googledrive.md) | ✅ |
| [Google Cloud Storage](../../protocols/googlecloudstorage.md) | ❌ |
| [Microsoft OneDrive](../../protocols/onedrive.md#quota) | ✅ |
| [Microsoft Sharepoint](../../protocols/sharepoint.md#quota) | ✅ |
| [Files.com](../../protocols/files.com.md) | ❌ |
| [DRACOON](../../protocols/dracoon.md) | ✅ |
| [Backblaze B2](../../protocols/b2.md) | ❌ |
| [Box.com](../../protocols/box.md) | ❌ |
| [Dropbox](../../protocols/dropbox.md) | ✅ |
| [Nextcloud](../../protocols/webdav/nextcloud.md) | ✅ |
| [ownCloud](../../protocols/webdav/nextcloud.md) | ✅ |
| [S3](../../protocols/s3/index.md) | ❌ |
| [SMB](../../protocols/smb.md) | ✅ |
| [Windows Azure ](../../protocols/azure.md) | ❌ |
| [OpenStack Object Storage](../../protocols/openstack/index.md) | ✅ |
| Protocol | Support |
|---------------------------------------------------------------------------|:-------:|
| [Local Disk](../../protocols/index.md#local-disk) | ✅ |
| [SFTP](../../protocols/sftp/index.md#free-space-calculation-is-incorrect) | ✅ |
| [FTP](../../protocols/ftp.md) | ❌ |
| [WebDAV](../../protocols/webdav/index.md) | ✅ |
| [Google Drive](../../protocols/googledrive.md) | ✅ |
| [Google Cloud Storage](../../protocols/googlecloudstorage.md) | ❌ |
| [Microsoft OneDrive](../../protocols/onedrive.md#quota) | ✅ |
| [Microsoft Sharepoint](../../protocols/sharepoint.md#quota) | ✅ |
| [Files.com](../../protocols/files.com.md) | ❌ |
| [DRACOON](../../protocols/dracoon.md) | ✅ |
| [Backblaze B2](../../protocols/b2.md) | ❌ |
| [Box.com](../../protocols/box.md) | ❌ |
| [Dropbox](../../protocols/dropbox.md) | ✅ |
| [Nextcloud](../../protocols/webdav/nextcloud.md) | ✅ |
| [ownCloud](../../protocols/webdav/nextcloud.md) | ✅ |
| [S3](../../protocols/s3/index.md) | ❌ |
| [SMB](../../protocols/smb.md) | ✅ |
| [Windows Azure ](../../protocols/azure.md) | ❌ |
| [OpenStack Object Storage](../../protocols/openstack/index.md) | ✅ |

:::{admonition} Limited Support
:class: attention

- **[Microsoft OneDrive](../../protocols/onedrive.md#quota)**: Quota is only supported when setting the *Path* in the bookmark configuration to a folder different from `/`.
- **[Microsoft SharePoint](../../protocols/sharepoint.md#quota)**: Quota is only supported when setting the *Path* in the bookmark configuration to a *Drives* folder in a SharePoint site folder.
:::
- **[Microsoft OneDrive](../../protocols/onedrive.md#quota)**: Quota is only supported when setting the *Path* in the
bookmark configuration to a folder different from `/`.
- **[Microsoft SharePoint](../../protocols/sharepoint.md#quota)**: Quota is only supported when setting the *Path* in
the bookmark configuration to a *Drives* folder in a SharePoint site folder.
:::

Some protocols do not report the available quota. Finder and Windows Explorer will show exabyte values in *Online* connect mode and the available space within the synchronization cache location on your local disk in *Smart Synchronization* connect mode for the affected protocols.
Some protocols do not report the available quota. Finder and Windows Explorer will show exabyte values in *Online*
connect mode and the available space within the synchronization cache location on your local disk in *Smart
Synchronization* connect mode for the affected protocols.

:::{note}
Quota support can be [disabled](../../protocols/sftp/index.md#free-space-calculation-is-incorrect) for all protocols.
Expand Down
142 changes: 142 additions & 0 deletions mountainduck/connect/integrated.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
Integrated
====

:::{toctree}
:hidden:
:titlesonly:
:::

:::{image} ../_images/Disk_Syncing.png
:alt: Disk Syncing
:width: 200px
:::

> Local storage is managed by the operating system. The mount is not seen as a remote volume by applications but as a regular folder on disk. This option uses the tightly integrated _File Provider_ (macOS) and _Cloud Files_ (Windows) APIs. Directories can be browsed when offline and files opened are made available for later offline access. You can choose to make selected files and folders available for offline use. Changes to files are uploaded in the background as soon as a connection is available.

:::{tip}
You can access files in _Integrated_ connect mode without being always connected the server or cloud storage.
:::


## Status of Files

Files and folders on a mounted volume have a status icon overlay in _File Explorer_ (Windows) and _Finder_ (macOS).

### ![](../_images/overlay_uptodate.png) Up to Date
The file or the contents of a directory has been opened and downloaded to your computer and therefore currently synced with the server or cloud storage. The file takes disk space on your computer and can always be opened even when no connection to the server or cloud storage is possible. New files in a directory on the remote server will appear as *Online Only* and are not downloaded automatically. Files copied to a volume are kept cached by default.

:::{note}
Files can be purged automatically from the cache when not accessed or the cache size limit is exceeded. Refer to [Cache Limitations](../preferences.md#cache-limitations).
:::

### ![](../_images/overlay_infinite.png) Online Only
The file can only be opened when a connection to the server or cloud storage can be made. The file does not take any space on your computer. The file is downloaded on demand when you open it.

:::{admonition} macOS only

Check warning on line 35 in mountainduck/connect/integrated.md

View workflow job for this annotation

GitHub Actions / build

'admonition': Invalid options format: expected ':' after key [myst.directive_option]
:class: note
:::{image} ../_images/File_Provider_Online_Only.png
:alt: File Provider Icon
:width: 24px
:align: left
:::
Click this additional icon displayed next to the filename in Finder.app to request the download of the file.
:::

### ![](../_images/overlay_sync.png) In Sync
The file or folder is selected to be synced with the server or cloud storage to always keep offline. The file takes disk space on your computer and can always be opened even when no connection to the server or cloud storage is possible. New files in a directory on the remote server will be downloaded automatically.

:::{tip}
Files explicitly selected to keep offline are **not** automatically purged. Refer to [Cache Limitations](../preferences.md#cache-limitations).
:::

### ![](../_images/overlay_syncing.png) Sync in Progress
The file or folder is currently syncing with the server or cloud storage. Check the menu with the sync status for current download or upload progress.

### ![](../_images/overlay_error.png) Sync Error
Files that failed to sync after changes. You are missing permission to write to the file or another problem occurred. Please contact your web hosting service provider for assistance. To resolve the error, move the file to your local disk, and reload the directory. Refer to [Sync Conflicts](sync.md#sync-conflicts) for possible error scenarios. You can try to repeat the failed transfer by selecting *Mountain Duck → Retry* in the [context menu](sync.md#context-menu-options). If a sync error cannot be solved using *Mountain Duck → Retry* because the server does not allow the operation (i.e. due to a permission issue), you can resolve the error state on the file or folder by

- Move the file or folder to another location on the volume
- Delete the file or folder
- To upload files to a target directory no longer existing on the server, you have to move the files to a location found on the server.

:::{admonition} macOS only

Check warning on line 62 in mountainduck/connect/integrated.md

View workflow job for this annotation

GitHub Actions / build

'admonition': Invalid options format: expected ':' after key [myst.directive_option]
:class: note
:::{image} ../_images/File_Provider_Ignored.png
:alt: File Provider Icon
:width: 24px
:align: left
:::
This additional icon displayed next to the filename in Finder.app indicates the file is not synced.
:::

### ![](../_images/overlay-pause.png) Sync Paused
The file or folder is pending syncing with the server but synchronization has been [paused](sync.md#pause-sync).

### ![](../_images/overlay_ignored.png) Ignored
The file or folder is only saved in local cache and not synced. New _Folders_, empty files and files matching [excluded filename patterns](../issues/index.md#filenames) are not uploaded. Folders are uploaded after being renamed.

:::{admonition} macOS only

Check warning on line 78 in mountainduck/connect/integrated.md

View workflow job for this annotation

GitHub Actions / build

'admonition': Invalid options format: expected ':' after key [myst.directive_option]
:class: note
:::{image} ../_images/File_Provider_Error.png
:alt: File Provider Icon
:width: 24px
:align: left
:::
This additional icon displayed next to the filename in Finder.app indicates a sync error for the file.
:::


## Sync Progress

Changes to files are uploaded in the background as soon as a connection is available. Progress is reported by animating the status bar icon and a menu item titled *Sync in Progress*.

:::{admonition} macOS only
:class: tip
Progress is shown when downloading or uploading a file with a progress bar over the file icon or circular progress indicator adjacent the filename.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Applies to Windows for Downloads. Research required to check whether uploads could benefit here too.

:::

### Keep Offline

Choose *Mountain Duck → Keep Offline on Local Disk* to make files and folders available offline. The status of the file will change to *In Sync*. The action is recursive for all contained files when a folder is selected and applies to new files found on the remote storage.

:::{admonition} macOS only
:class: tip

:::{image} ../_images/File_Provider_Online_Only.png
:alt: File Provider Icon
:width: 24px
:align: left
:::
_Download Now_ when using _Integrated_ connect mode downloads the file but allows it to be removed from cache on low disk space.
:::


### Delete on Local Disk

Choose *Mountain Duck → Delete on Local Disk* to delete the offline copy. The status of the file will change to *Online Only*. The action is recursive for all contained files when a folder is selected and allows you to quickly free up space used in the cache on your local disk.

:::{admonition} macOS only
:class: tip

Choose _Remove Download_ instead when using _Integrated_ connect mode.
:::

## Cache

There are different ways to delete the sync cache:
* Delete the bookmark with connection mode set to *Smart Synchronization* or *Integrated*
* Use the deletion prompt when switching the connect mode between *Integrated* and *Smart Synchronization*
:::{image} ../_images/Prompt_Delete_Cache.png
:alt: Delete Cache Prompt
:width: 400px
:::
* Use the delete option in Finder.app once the bookmark is disconnected. You will be prompt to confirm the deletion as it can lead to file loss if some changes aren't synchronized to the server
:::{image} ../_images/Finder_Option_Delete_Cache.png
:alt: Delete Cache Option
:width: 800px
:::

## Limitations

- Custom mount locations are not honoured using the Integrated mode.
- The *Pseudo File locking* available in the Mountain Duck preferences *Connection* tab is not supported in *Integrated* mode.
12 changes: 11 additions & 1 deletion mountainduck/connect/sync.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,16 @@

The cache size can be limited per bookmark within the *Preferences → Sync* tab. Also files not accessed within a chosen period of time can be purged. Refer to [Cache Limitations](../preferences.md#cache-limitations). The cache contains obfuscated file contents on local disk to make files available when offline.

### Delete Cache

There are different ways to delete the sync cache:
* Delete the bookmark with connection mode set to *Smart Synchronization* or *Integrated*
* Use the deletion prompt when switching the connect mode between *Integrated* and *Smart Synchronization*

```{image} ../_images/Prompt_Delete_Cache.png
:alt: Delete Cache Prompt
:width: 600px
```

## Transfer Progress

Expand All @@ -158,7 +168,7 @@

:::{image} ../_images/Menu_Sync_in_Progress.png
:alt: Sync Progress
:width: 800px
:width: 400px
:::

Shown for the current transfers are transfer rate, remaining data, and already transferred data. If Mountain Duck synchronizes files in a badge, the file state might differ from the state within the file browser. The sync progress display is limited to 5 entries.
Expand All @@ -175,7 +185,7 @@
Syncing is also paused automatically when your network connection to the server is interrupted but resumed automatically when a connection is restored.

:::{warning}
When synchronization is paused by selecting _Pause Sync_ in the menu or caused by a connectivity problem, no changes from the server will be detected. Additionally, files marked as [Online Only](#online-only) cannot be opened: The application attempting to open the file will show an error message and a *Access Denied* notification is shown.

Check warning on line 188 in mountainduck/connect/sync.md

View workflow job for this annotation

GitHub Actions / build

'myst' cross-reference target not found: 'online-only' [myst.xref_missing]
:::

### Cancel Upload in Progress
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading