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
5d424fc
Spotlight is supported for _Integrated_ connect mode.
dkocher Oct 9, 2022
7371244
Dragging files will move by default in Finder in _Integrated_ connect…
dkocher Oct 9, 2022
34d98a4
Custom mount not supported in _Integrated_ connect mode.
dkocher Oct 9, 2022
57007e7
Custom cache location not supported in _Integrated_ connect mode.
dkocher Oct 9, 2022
3ae0782
Add note about OS cache management.
dkocher Oct 9, 2022
1cd778a
Pseudo locking not supported.
dkocher Oct 9, 2022
e11f228
Add _Integrated_ mode.
dkocher Oct 9, 2022
f90e04b
Add but always in `~/Library/CloudStorage`
dkocher Oct 17, 2022
12062ca
Add additional icons shown in Finder with file provider.
dkocher Oct 28, 2022
37b7375
Add note that opening files from history in applications may fail bec…
dkocher Oct 28, 2022
0f703ba
New system requirements.
dkocher Oct 28, 2022
3fc037e
Add page for _Integrated_ mode.
dkocher Jul 12, 2023
360c656
Invert images.
dkocher Jul 12, 2023
c799cba
Add Integrated connect mode to table.
dkocher Oct 25, 2023
7fbb05f
Remove not not applicable.
dkocher Nov 30, 2023
f927020
Add links to pages.
dkocher Nov 30, 2023
1105b50
Change to headings.
dkocher Nov 30, 2023
d86453d
Revise sync status documentation with additional file provider icons.
dkocher Nov 30, 2023
3968ae1
Optional Driver Installation
dkocher Nov 30, 2023
758b2dc
Review
Cassie205 Jan 30, 2024
a6d7a43
Add Limitations
Cassie205 Jan 30, 2024
e9649a6
Issue #458
Cassie205 Jan 30, 2024
745d2e4
Add "Network Volume"
dkocher Feb 12, 2024
2461070
QuickLook requires offline file.
dkocher Oct 9, 2022
0f434f8
Add note about OS cache management.
dkocher Oct 9, 2022
351cd73
Review
Cassie205 Jan 30, 2024
073bee5
Add info for custom versioning Mountain Duck
Cassie205 Jun 28, 2024
fe68980
Review
dkocher Sep 27, 2024
2f3c49a
Review
dkocher Sep 27, 2024
caf03f6
Formatting
dkocher Sep 27, 2024
7eda3bf
Checkmark for indexer.
dkocher Dec 28, 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 @@ Choose _Mountain Duck → Retry_ to retry a sync operation failed previously wit

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 @@ Detailed status for current transfers is available in the *Sync* submenu. The sy

:::{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 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