Auf dieser Seite werden mehrere Möglichkeiten zum Bereitstellen von Cloud Storage-Buckets in Ihrem lokalen Dateisystem mithilfe von Cloud Storage FUSE beschrieben.
Hinweise
Um Buckets bereitzustellen und darauf zuzugreifen, müssen Sie zuerst die folgenden Aufgaben ausführen.
Erforderliche Rollen für das Bereitstellen und den Zugriff auf einen Bucket abrufen
Wenn Sie einen Bucket bereitstellen, darauf zugreifen und Lese- und Schreibvorgänge in einem Bucket ausführen möchten, bitten Sie den Bucket-Inhaber, Ihnen die Rolle „Storage-Objekt-Nutzer“ (roles/storage.objectUser
) für den Bucket zuzuweisen.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Lesen von einem bereitgestellten Bucket und zum Schreiben in einen bereitgestellten Bucket erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
storage.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 mit Buckets verwenden.
Cloud Storage FUSE installieren
Installieren Sie Cloud Storage FUSE, 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.
-
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.
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
Verwenden Sie den folgenden Befehl, um Buckets in Ihrem lokalen Dateisystem bereitzustellen:
gcsfuse GLOBAL_OPTIONS BUCKET_NAME MOUNT_POINT
Dabei gilt:
GLOBAL_OPTIONS
sind die Optionen, die Sie angeben können, um zu steuern, wie die Bereitstellung eingerichtet wird. Weitere Informationen zu den Optionen und ihrer Verwendung finden Sie unter Optionen für die Cloud Storage FUSE-Befehlszeile.BUCKET_NAME
ist 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_POINT
ist das lokale Verzeichnis, in dem der Bucket bereitgestellt wird. Beispiel:/path/to/mount/point
.
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 Flag --foreground
ausführen.
Beispiele für die Bereitstellung
In diesem Abschnitt werden verschiedene Beispielbefehle zum Bereitstellen von Bucket beschrieben.
Statische Bereitstellung
Statische Bereitstellung bezieht sich auf das Bereitstellen eines bestimmten Buckets. Führen Sie beispielsweise die folgenden Befehle aus, um einen Bucket namens my-bucket
im Verzeichnis /path/to/mount/point
bereitzustellen:
mkdir /path/to/mount/point
gcsfuse 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/point
gcsfuse /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 einen Bucket mit dem Namen 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/point
Verzeichnis 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 den Befehl gcsfuse
. 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/point
Mit 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/point
Bei der Bereitstellung mit dem Linux-Befehl mount
können die Befehlszeilenoptionen von Cloud Storage FUSE als Argument an das Flag -o
ü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/point
Persistente 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,user
Dabei gilt:
Die Option
rw
gibt an, dass der Bereitstellungspunkt mit Lese- und Schreibberechtigungen erstellt wird.Die Option
noauto
gibt an, dass das Dateisystem beim Start nicht bereitgestellt werden soll.Mit der Option
user
kann jeder den in der Datei/etc/fstab
angegebenen Bereitstellungspunkt erstellen. Nachdem die Beispielzeile der Datei/etc/fstab
hinzugefügt wurde, können Siemount /mount/point
als 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,user
Sie 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 für die Bereitstellung in der Datei /etc/fstab
Unterstriche (_
) anstelle von Bindestriche (-
) verwendet werden. Beispiel: implicit_dirs
anstelle von implicit-dirs
.
Bucket mit Ordnern bereitstellen
Sie können Buckets mit mehreren Ordnertypen bereitstellen.
Bucket mit verwalteten Ordnern bereitstellen
Wenn Sie einen Bucket mit seinen verwalteten Ordnern bereitstellen möchten, fügen Sie die Option --implicit-dirs
in den 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/point
Beachten Sie beim Bereitstellen eines Buckets mit verwalteten Ordnern die folgenden Einschränkungen und Hinweise:
Leere verwaltete Ordner werden in bereitgestellten Buckets nicht angezeigt.
Mit Cloud Storage FUSE können Sie keine IAM-Berechtigungen für einen verwalteten Ordner 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
cp
undmv
kopieren und verschieben. Wenn Sie einen verwalteten Ordner kopieren oder verschieben, werden die IAM-Richtlinien des ursprünglichen verwalteten Ordners nicht in den neuen verwalteten Ordner übernommen. Sie müssen neue IAM-Richtlinien für den neuen verwalteten Ordner festlegen.
Bucket mit implizit definierten Ordnern bereitstellen
Sie können implizit definierte Ordner mit dem Flag --implicit-dirs
in Ihrem Cloud Storage FUSE-Befehl bereitstellen. Implizit definierte Ordner sind Ordner, die nicht explizit als Objekte in Cloud Storage erstellt werden. Mit dem Flag --implicit-dirs
werden Ordner angezeigt, wenn Sie einen Bucket bereitstellen.
Wenn Sie beispielsweise einen Bucket namens my-bucket
mit implizit definierten Ordnern im Verzeichnis /path/to/mount/point
bereitstellen möchten, führen Sie den folgenden Befehl aus:
gcsfuse --implicit-dirs my-bucket /path/to/mount/point
Einen Bucket mit aktiviertem hierarchischen Namespace mit Ordnern bereitstellen
Sie können einen Bucket mit aktiviertem hierarchischen Namespace bereitstellen, einschließlich seiner Ordner. Wenn Sie einen Bucket mit hierarchischem Namespace bereitstellen, müssen Sie das Flag --implicit-dirs
nicht angeben, damit die Ordner im bereitgestellten Bucket angezeigt werden.
Wenn Sie beispielsweise einen Bucket namens 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/point
Zugriffsberechtigungen 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/point
Wenn 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/point
Nächste Schritte
Weitere Informationen zur Leistung 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.