Skip to content

Commit ed8ef90

Browse files
docs(admin): Move external storage encoding to main ext st. ch.
Move external storage specific file name encoding section out of the buried troubleshooting chapter and into the main external storage configuring chapter. Also very light updates to formatting, grammar, and headings. Very light misc clarification/clean-up. Signed-off-by: Josh <[email protected]>
1 parent e8b0ce5 commit ed8ef90

File tree

1 file changed

+76
-44
lines changed

1 file changed

+76
-44
lines changed
Lines changed: 76 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,47 @@
1-
==================================
2-
Configuring External Storage (GUI)
3-
==================================
1+
================
2+
External Storage
3+
================
44

55
The External Storage Support application enables you to mount external storage
66
services and devices as secondary Nextcloud storage devices. You may also allow
77
users to mount their own external storage services.
88

9-
For configuration of external storages via occ command, see :ref:`occ documentation <files_external_label>`.
9+
Enabling
10+
--------
1011

11-
Enabling External Storage Support
12-
---------------------------------
13-
14-
The External storage support application is enabled on your Apps page.
12+
External Storage Support is provided by a bundled (automatically installed) app. It is
13+
disabled by default, so to use this feature you simply need to enable it under
14+
**Apps**.
1515

1616
.. figure:: external_storage/images/enable-app.png
1717
:alt: Enable external storage on your Apps page.
1818

19-
Storage configuration
20-
---------------------
19+
Configuring
20+
-----------
21+
22+
To access the settings for configuring external storage mounts, click your Profile icon
23+
in the top right and select **Settings** from the dropdown. On the left side, under
24+
**Administration**, select **External Storage**.
2125

22-
To access the settings for configuring external storage mounts, click on your Profile icon
23-
in the top right and select settings from the dropdown. On the left side under Administration
24-
select External Storage.
26+
.. note::
27+
External storage can also be configured via the occ command. See :ref:`occ
28+
documentation <files_external_label>`.
2529

2630
To create a new external storage mount, select an available backend from the
27-
dropdown **Add storage**. Each backend has different required options, which
31+
**Add storage** dropdown. Each backend has different required options, which
2832
are configured in the configuration fields.
2933

3034
.. figure:: external_storage/images/add_storage.png
3135

3236
Each backend may also accept multiple authentication methods. These are selected
3337
with the dropdown under **Authentication**. Different backends support different
34-
authentication mechanisms; some specific to the backend, others are more
38+
authentication mechanisms; some are specific to the backend, while others are more
3539
generic. See :doc:`external_storage/auth_mechanisms` for more detailed
3640
information.
3741

3842
When you select an authentication mechanism, the configuration fields change as
39-
appropriate for the mechanism. The SFTP backend, for one example, supports
40-
**username and password**, **Log-in credentials, save in session**, and **RSA
43+
appropriate for the chosen mechanism. For example, the SFTP backend supports
44+
**Username and password**, **Log-in credentials, save in session**, and **RSA
4145
public key**.
4246

4347
.. figure:: external_storage/images/auth_mechanism.png
@@ -52,41 +56,40 @@ re-check your configuration and network availability.
5256
If there is an error on the storage, it will be marked as unavailable for ten
5357
minutes. To re-check it, click the colored icon or reload your Admin page.
5458

55-
Usage of variables for mount paths
59+
Usage of Variables for Mount Paths
5660
----------------------------------
5761

5862
The external storage mounting mechanism accepts variables in the mount path.
5963

60-
Use ``$user`` for automatic substitution with the logged in user's username.
64+
Use ``$user`` for automatic substitution with the logged-in user's username.
6165

6266
Use ``$home`` for automatic substitution with a configurable home directory variable
63-
(requires LDAP, see :ref:`LDAP_Special_Attributes` in the LDAP configuration documentation for details)
67+
(requires LDAP; see :ref:`LDAP_Special_Attributes` in the LDAP configuration documentation for details).
6468

65-
In the following example, the mount point for a logged in user "alice" would substitute
69+
In the following example, the mount point for a logged-in user "alice" would resolve
6670
to ``/opt/userDirectories/alice/myPictures``.
6771

6872
.. figure:: external_storage/images/externalStorages_variables.png
6973
:alt: External storage user variable substitution
7074

71-
72-
User and group permissions
75+
User and Group Permissions
7376
--------------------------
7477

75-
A storage configured in a user's Personal settings is available only to the user
76-
that created it. A storage configured in the Admin settings is available to
77-
all users by default, and it can be restricted to specific users and groups in
78+
A storage configured in a user's personal settings is available only to the user
79+
who created it. A storage configured in the Admin settings is available to
80+
all users by default, but it can be restricted to specific users and groups in
7881
the **Available for** field.
7982

8083
.. figure:: external_storage/images/applicable.png
8184
:alt: User and groups selector
8285

8386
.. _external_storage_mount_options_label:
8487

85-
Mount options
88+
Mount Options
8689
-------------
8790

88-
The Overflow menu (three dots) exposes the settings and trashcan. Click the trashcan to delete the
89-
mountpoint. The settings button allows you to configure each storage mount
91+
The overflow menu (three dots) exposes the settings and trashcan icons. Click the trashcan to delete the
92+
mount point. The settings button allows you to configure each storage mount
9093
individually with the following options:
9194

9295
* Encryption
@@ -99,23 +102,23 @@ individually with the following options:
99102
The **Encryption** checkbox is visible only when the Encryption app is enabled. Note that server-side
100103
encryption is not available for other Nextcloud servers used as external storage.
101104

102-
**Enable Sharing** allows the Nextcloud admin to enable or disable sharing on individual mountpoints.
103-
When sharing is disabled the shares are retained internally, so that you can re-enable sharing
105+
**Enable Sharing** allows the Nextcloud admin to enable or disable sharing on individual mount points.
106+
When sharing is disabled, the shares are retained internally so that you can re-enable sharing
104107
and the previous shares become available again. Sharing is disabled by default.
105108

106109
.. figure:: external_storage/images/mount_options.png
107110
:alt: Additional mount options exposed on mouseover.
108111

109-
Using self-signed certificates
112+
Using Self-Signed Certificates
110113
------------------------------
111114

112-
When using self-signed certificates for external storage mounts the certificate
115+
When using self-signed certificates for external storage mounts, the certificate
113116
must be imported into the personal settings of the user. Please refer to
114117
`Nextcloud HTTPS External Mount
115118
<https://ownclouden.blogspot.de/2014/11/owncloud-https-external-mount.html>`_
116119
for more information.
117120

118-
Available storage backends
121+
Available Storage Backends
119122
--------------------------
120123

121124
The following backends are provided by the external storages app.
@@ -133,9 +136,9 @@ The following backends are provided by the external storages app.
133136
external_storage/webdav
134137

135138
.. note:: A non-blocking or correctly configured SELinux setup is needed
136-
for these backends to work. Please refer to the :ref:`selinux-config-label`.
139+
for these backends to work. Please refer to :ref:`selinux-config-label`.
137140

138-
Allow users to mount external Storage
141+
Allow Users to Mount External Storage
139142
-------------------------------------
140143

141144
Check **Enable User External Storage** to allow your users to mount their own
@@ -146,19 +149,48 @@ on your network!
146149
.. figure:: external_storage/images/user_mounts.png
147150
:alt: Checkboxes to allow users to mount external storage services.
148151

149-
Adding files to external storages
150-
---------------------------------
152+
Adding Files
153+
------------
151154

152155
We recommend configuring the background job **Webcron** or
153156
**Cron** (see :doc:`../configuration_server/background_jobs_configuration`)
154157
to enable Nextcloud to automatically detect files added to your external
155158
storages.
156159

157-
Nextcloud may not always be able to find out what has been
158-
changed remotely (files changed without going through Nextcloud), especially
159-
when it's very deep in the folder hierarchy of the external storage.
160+
Nextcloud may not always be able to detect changes made remotely (files changed without going through Nextcloud), especially
161+
when files are located deep in the folder hierarchy of the external storage.
160162

161-
You might need to setup a cron job that runs ``sudo -E -u www-data php occ files:scan --all``
162-
(or replace ``--all`` with the user name, see also :doc:`../occ_command`)
163-
to trigger a rescan of the user's files periodically (for example every 15 minutes), which includes
163+
You might need to set up a cron job that runs ``sudo -E -u www-data php occ files:scan --all``
164+
(or replace ``--all`` with the username; see also :doc:`../occ_command`)
165+
to trigger a rescan of the user's files periodically (for example, every 15 minutes), which includes
164166
the mounted external storage.
167+
168+
.. _trouble-file-encoding-ext-storages:
169+
170+
Troubleshooting File Name Encoding
171+
----------------------------------
172+
173+
.. TODO: This should be reviewed by a knowledgeable party at a future date to determine if any changes are relevant with the HFS+ to APFS migration in macOS.
174+
175+
When using external storage, it can happen that some files with special characters will not
176+
appear in the file listing, or they will appear but not be accessible.
177+
178+
When this happens, please run the :ref:`files scanner<occ_files_scan_label>`, for example::
179+
180+
sudo -E -u www-data php occ files:scan --all
181+
182+
If the scanner reports an encoding issue on the affected file, please enable Mac encoding
183+
compatibility in the :ref:`mount options<external_storage_mount_options_label>`
184+
and then :ref:`rescan the external storage<occ_files_scan_label>`.
185+
186+
.. note::
187+
This mode comes with a performance impact because Nextcloud will always try both encodings when detecting files
188+
on external storages.
189+
190+
Mac computers use the NFD Unicode normalization for file names, which is different from NFC, the one used
191+
by other operating systems. Mac users might upload files directly to the external storage using NFD-normalized
192+
file names. When uploading through Nextcloud, file names will always be normalized to the NFC standard for consistency.
193+
194+
It is recommended to let Nextcloud use external storages exclusively to avoid such issues.
195+
196+
See also the `technical explanation about NFC vs NFD normalizations <https://www.win.tue.nl/~aeb/linux/uc/nfc_vs_nfd.html>`_.

0 commit comments

Comments
 (0)