Cloud Storage FUSE-Befehlszeilenoptionen
In diesem Dokument werden mehrere Möglichkeiten zum Bereitstellen von Cloud Storage-Buckets in Ihrem lokalen Dateisystem mithilfe von Cloud Storage FUSE beschrieben.
Hinweise
Bevor Sie Buckets bereitstellen und darauf zugreifen können, müssen Sie die folgenden Aufgaben ausführen. Sie können Cloud Shell nicht verwenden, um Cloud Storage-Buckets bereitzustellen. Führen Sie stattdessen die in diesem Dokument angegebenen Befehle im Terminal Ihres Debian- oder Ubuntu-Computers aus.
Erforderliche Rollen zum Einbinden und Zugreifen auf einen Bucket abrufen
Bitten Sie den Bucket-Inhaber, Ihnen die Rolle „Storage-Objekt-Nutzer“ (roles/storage.objectUser) für den Bucket zuzuweisen, damit Sie einen Bucket bereitstellen, darauf zugreifen und Lese- und Schreibvorgänge ausführen können.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Lesen aus einem eingebundenen Bucket und zum Schreiben in einen eingebundenen Bucket erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
storage.objects.createstorage.objects.deletestorage.objects.getstorage.objects.liststorage.objects.update
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Eine Anleitung zum Zuweisen von Rollen für Buckets finden Sie unter IAM-Richtlinien für Buckets festlegen und verwalten.
Cloud Storage FUSE installieren
Installieren Sie Cloud Storage FUSE auf Ihrem Computer, falls noch nicht geschehen.
Cloud Storage FUSE-Anfragen authentifizieren
Zur Authentifizierung von Cloud Storage FUSE-Anfragen an Cloud Storage müssen Sie Standardanmeldedaten für Anwendungen einrichten. Standardmäßig lädt Cloud Storage FUSE automatisch die Standardanmeldedaten für Anwendungen ohne weitere Konfiguration.
Führen Sie die folgenden Schritte aus, um mit der Google Cloud CLI Standardanmeldedaten für Anwendungen einzurichten:
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init -
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Wenn Sie eine virtuelle Maschine (VM) von Compute Engine erstellen, kann ihr Dienstkonto auch zur Authentifizierung des Zugriffs auf Cloud Storage FUSE verwendet werden.
Bucket bereitstellen
Führen Sie den folgenden Befehl auf Ihrem lokalen Computer aus, um Buckets in Ihrem lokalen Dateisystem bereitzustellen:
gcsfuse GLOBAL_OPTIONS BUCKET_NAME MOUNT_POINT
Ersetzen Sie Folgendes:
GLOBAL_OPTIONSsind die Optionen, die Sie angeben können, um zu steuern, wie die Bereitstellung eingerichtet wird. Weitere Informationen zu Optionen und deren Verwendung finden Sie in der Cloud Storage FUSE-CLI-Referenz oder auf den Seiten zur Cloud Storage FUSE-Konfigurationsdatei.BUCKET_NAMEist der Name des Buckets, den Sie bereitstellen möchten. Beispiel:my-bucket. Wenn Sie die dynamische Bereitstellung ausführen möchten, schließen Sie einen Bucket-Namen aus dem Befehl aus.MOUNT_POINTist das lokale Verzeichnis, in dem der Bucket bereitgestellt wird. Beispiel:/path/to/mount/point.
Optional: Wenn Sie implizit definierte Verzeichnisse erstellen möchten, mit denen Sie zu Ordnern navigieren können, die nur Objekte enthalten, die tiefer verschachtelt sind, fügen Sie das Flag --implicit-dirs in Ihren gcsfuse-Befehl ein. Weitere Informationen zu implizit definierten Verzeichnissen finden Sie unter Verzeichnisseemantik.
Nachdem Cloud Storage FUSE beendet wurde, können Sie auf Ihre bereitgestellten Buckets zugreifen, indem Sie ls am Bucket-Bereitstellungspunkt ausführen. Wenn Cloud Storage FUSE im Vordergrund bleiben soll (z. B. für das Debug-Logging), können Sie den Befehl gcsfuse mit dem Feld foreground oder der Option --foreground ausführen.
Beispiele für die Bereitstellung
In diesem Abschnitt werden verschiedene Beispielbefehle zum Einbinden von Buckets beschrieben.
Statische Bereitstellung
Statische Bereitstellung bezieht sich auf das Bereitstellen eines bestimmten Buckets. Wenn Sie beispielsweise einen Bucket mit dem Namen my-bucket im Verzeichnis /path/to/mount/point bereitstellen möchten, führen Sie die folgenden Befehle aus:
mkdir /path/to/mount/pointgcsfuse my-bucket /path/to/mount/point
Dynamische Bereitstellung
Bei der dynamischen Bereitstellung werden alle Buckets, auf die ein Nutzer Zugriff hat, als Unterverzeichnisse bereitgestellt.
Bei einer dynamischen Bereitstellung schließen Sie Bucket-Namen mit dem Befehl aus.
Angenommen, Sie haben Zugriff auf die Buckets my-bucket-1, my-bucket-2 und my-bucket-3. Führen Sie die folgenden Befehle aus, um alle Buckets im Verzeichnis /path/to/mount/point bereitzustellen:
mkdir /path/to/mount/pointgcsfuse /path/to/mount/point
Anschließend können Sie auf die Buckets als Unterverzeichnisse zugreifen:
ls /path/to/mount/point/my-bucket-1/ls /path/to/mount/point/my-bucket-2/ls /path/to/mount/point/my-bucket-3/
Dynamisch bereitgestellte Buckets können nicht vom Root-Bereitstellungspunkt aus aufgelistet werden. Stattdessen muss der Bucket-Name als Teil des Listenvorgangs angegeben werden.
Bucket als schreibgeschützt bereitstellen
Um einen Bucket schreibgeschützt bereitzustellen, übergeben Sie die Option -o ro an den Befehl gcsfuse. Wenn Sie beispielsweise den Bucket my-bucket als schreibgeschützt im Verzeichnis /path/to/mount/point bereitstellen möchten, führen Sie den folgenden Befehl aus:
gcsfuse -o ro my-bucket /path/to/mount/pointVerzeichnis in einem Bucket bereitstellen
Standardmäßig stellt Cloud Storage FUSE Buckets vollständig bereit, einschließlich des Inhalts und der Verzeichnisstrukturen des Buckets. Um ein bestimmtes Verzeichnis in einem Bucket bereitzustellen, übergeben Sie die Option --only-dir an die gcsfuse-Befehlszeile oder das only-dir-Feld in einer Cloud Storage FUSE-Konfigurationsdatei. Wenn Sie beispielsweise das Verzeichnis my-bucket/a/b im Verzeichnis /path/to/mount/point bereitstellen möchten, führen Sie den folgenden Befehl aus:
gcsfuse --only-dir a/b my-bucket /path/to/mount/pointMit dem Linux-Befehl mount bereitstellen
Die Cloud Storage FUSE-Installation enthält einen Helper mit dem Linux-Befehl mount, mit dem Sie Buckets mit dem Befehl mount bereitstellen können.
Der Befehl mount muss unter Root ausgeführt werden, wenn Sie Linux verwenden. Mit dem folgenden Befehl wird beispielsweise ein Bucket mit dem Namen my-bucket im Pfad /path/to/mount/point bereitgestellt:
sudo mount -t gcsfuse -o rw,user my-bucket /path/to/mount/pointBei der Bereitstellung mit dem Linux-Befehl mount können die gcsfuse-Optionen als Argument an die -o-Option übergeben werden. Bindestriche (-) sollten jedoch durch Unterstriche (_) ersetzt werden. Beispiel: implicit_dirs anstelle von implicit-dirs.
sudo mount -t gcsfuse -o implicit_dirs my-bucket /path/to/mount/pointPersistente Bereitstellung
Die Cloud Storage FUSE-Installation enthält einen Helper, der unter dem Pfad /sbin/mount.gcsfuse in Ihrem System installiert ist. Mit diesem Hilfsprogramm können Sie Bereitstellungspunkte mithilfe der Datei /etc/fstab erstellen und so die Bereitstellungen beibehalten.
Wenn Sie die Datei /etc/fstab hinzufügen, wird durch die folgende Zeile beispielsweise ein Bereitstellungspunkt für einen Bucket my-bucket im Pfad /mount/point definiert:
my-bucket /mount/point gcsfuse rw,noauto,userDabei gilt:
Die Option
rwgibt an, dass der Bereitstellungspunkt mit Lese- und Schreibberechtigungen erstellt wird.Die Option
noautogibt an, dass das Dateisystem beim Start nicht bereitgestellt werden soll.Mit der Option
userkann jeder den in der Datei/etc/fstabangegebenen Bereitstellungspunkt erstellen. Nachdem die Beispielzeile der Datei/etc/fstabhinzugefügt wurde, können Siemount /mount/pointals Nicht-Root-Nutzer ausführen.
Wenn Sie den Bucket beim Booten automatisch bereitstellen möchten, müssen Sie möglicherweise die Option x-systemd.requires=network-online.target oder die Option _netdev in den Eintrag /etc/fstab aufnehmen, damit Cloud Storage FUSE darauf wartet, dass das Netzwerksystem bereit ist, bevor die Bereitstellung erfolgt. Beispiele:
my-bucket /mount/point gcsfuse rw,x-systemd.requires=network-online.target,userSie können einen Bucket automatisch als bestimmter Nicht-Root-Nutzer bereitstellen, indem Sie die Optionen uid und/oder gid in den Eintrag /etc/fstab aufnehmen. Beispiele:
my-bucket /mount/point gcsfuse rw,_netdev,allow_other,uid=1001,gid=1001Ähnlich wie beim Linux-Befehl mount müssen bei den Flags, die in der Datei /etc/fstab für die Bereitstellung verwendet werden, Unterstriche (_) anstelle von Bindestrichen (-) verwendet werden.
Beispiel: implicit_dirs anstelle von implicit-dirs.
Bucket mit Ordnern bereitstellen
Sie können Buckets mit mehreren Ordnerarten einbinden.
Bucket mit verwalteten Ordnern einbinden
Wenn Sie einen Bucket einschließlich seiner verwalteten Ordner bereitstellen möchten, fügen Sie die Option --implicit-dirs oder das Feld implicit-dirs in Ihren Befehl ein.
Wenn Sie beispielsweise einen Bucket mit dem Namen my-bucket und seine verwalteten Ordner im Verzeichnis /path/to/mount/point bereitstellen möchten, führen Sie die folgenden Befehle aus:
gcsfuse --implicit-dirs my-bucket /path/to/mount/pointBeachten Sie beim Einbinden eines Buckets mit verwalteten Ordnern die folgenden Einschränkungen und Überlegungen:
Leere verwaltete Ordner werden in eingebundenen Buckets nicht angezeigt.
Sie können IAM-Berechtigungen für einen verwalteten Ordner nicht mit Cloud Storage FUSE festlegen oder verwalten. Informationen zum Festlegen oder Verwalten von IAM-Berechtigungen für einen verwalteten Ordner finden Sie unter IAM mit verwalteten Ordnern verwenden.
Sie können einen verwalteten Ordner in einem bereitgestellten Bucket mit den Befehlen
cpundmvkopieren und verschieben. Wenn Sie einen verwalteten Ordner kopieren oder verschieben, werden die IAM-Richtlinien des ursprünglichen verwalteten Ordners nicht auf den neuen verwalteten Ordner übertragen. Sie müssen neue IAM-Richtlinien für den neuen verwalteten Ordner festlegen.
Bucket mit implizit definierten Ordnern einbinden
Sie können implizit definierte Ordner mit der Option --implicit-dirs
gcsfuse in der gcsfuse-Befehlszeile oder dem Feld implicit-dirs in einer Cloud Storage FUSE-Konfigurationsdatei einbinden. Implizit definierte Ordner sind Ordner, die nicht explizit als Objekte in Cloud Storage erstellt werden. Mit der Option --implicit-dirs können Sie Ordner sehen, wenn Sie einen Bucket einbinden.
Wenn Sie beispielsweise einen Bucket mit dem Namen my-bucket im Verzeichnis /path/to/mount/point mit implizit definierten Ordnern bereitstellen möchten, führen Sie den folgenden Befehl aus:
gcsfuse --implicit-dirs my-bucket /path/to/mount/pointBucket mit aktiviertem hierarchischen Namespace mit Ordnern einbinden
Sie können einen Bucket mit aktiviertem hierarchischen Namespace, einschließlich seiner Ordner, einbinden. Wenn Sie einen Bucket mit hierarchischem Namespace einbinden, müssen Sie die Option --implicit-dirs
gcsfuse oder das Feld implicit-dirs nicht angeben, damit die Ordner in Ihrem eingebundenen Bucket angezeigt werden.
Wenn Sie beispielsweise einen Bucket mit dem Namen my-bucket mit Ordnern im Verzeichnis /path/to/mount/point bereitstellen möchten, führen Sie den folgenden Befehl aus:
gcsfuse my-bucket /path/to/mount/pointZugriffsberechtigungen für den Bereitstellungspunkt steuern
Standardmäßig erstellt Cloud Storage FUSE Bucket-Bereitstellungspunkte mit Berechtigungen, die nur dem aufrufenden Nutzer den Zugriff auf den Inhalt der bereitgestellten Buckets ermöglichen. Dies ist eine Sicherheitsmaßnahme, die im FUSE-Kernel implementiert wird.
Um einen Bucket bereitzustellen und anderen den Zugriff auf den Bucket-Bereitstellungspunkt zu ermöglichen, können Sie den Befehl mount als Root mit der Option -o allow_other ausführen:
mount -t gcsfuse -o allow_other my-bucket /path/to/mount/pointWenn Sie vermeiden möchten, dass der Bucket als Root bereitgestellt wird, müssen Sie der Datei /etc/fuse.conf user_allow_other hinzufügen, damit andere Nutzer auf den Bucket-Bereitstellungspunkt zugreifen können.
Bucket-Bereitstellung aufheben
Verwenden Sie das fusermount-Tool, um die Bereitstellung eines Buckets aufzuheben:
fusermount -u /path/to/mount/pointNächste Schritte
Best Practices für die Leistungsoptimierung von Cloud Storage FUSE, z. B. zum Steuern des Caching-Verhaltens oder zum Protokollieren von Aktivitäten.
Weitere Informationen zur Verzeichnissemantik in Cloud Storage FUSE.