Cette page explique comment renommer et déplacer des dossiers dans un bucket avec l'espace de noms hiérarchique activé.
L'opération de renommage renomme de manière récursive un dossier, ses dossiers enfants et les ressources associées, y compris les objets et les dossiers gérés, en une seule action atomique.
L'opération de renommage est atomique. L'opération aboutit et déplace les ressources vers leur nouveau chemin d'accès, ou échoue avec une erreur. En cas d'erreur, toutes les ressources sont restaurées à leur état d'origine.
Dans un bucket avec espace de noms hiérarchique activé, le renommage d'un dossier est une opération de métadonnées uniquement. Il ne nécessite pas de déplacer ni de copier physiquement les objets dans le dossier. Par conséquent, aucun coût de copie d'objets n'est généré.
Toutefois, dans un bucket sans espace de noms hiérarchique activé, les dossiers sont simulés. Pour renommer ou déplacer un dossier simulé, vous devez copier et supprimer chaque objet qu'il contient. Si votre dossier contient de nombreux objets, le processus de renommage peut être inefficace et coûteux. Le renommage ou le déplacement d'un dossier simulé n'est pas non plus atomique. Autrement dit, si le processus échoue, votre bucket peut rester dans un état incohérent, avec seulement certains objets déplacés.
Pendant le processus de renommage de dossier, vous pouvez lire et lister les ressources en cours de renommage. Toutefois, vous ne pouvez pas exécuter d'opérations d'écriture sur les ressources concernées.
L'opération de modification du nom du dossier lance une opération de longue durée sur un bucket.
Rôles requis
Pour obtenir les autorisations requises pour renommer ou déplacer des dossiers dans des buckets, demandez à votre administrateur de vous accorder le rôle IAM "Utilisateur d'objets Storage" (roles/storage.objectUser
) sur le bucket.
Pour en savoir plus sur l'attribution de rôles aux projets, consultez la page Gérer l'accès aux projets.
Pour afficher les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
storage.folders.rename
- Cette autorisation est requise pour le dossier source.
storage.folders.create
- Cette autorisation est requise pour le dossier de destination.
Vous pouvez également obtenir les autorisations précédentes avec d'autres rôles personnalisés ou des rôles prédéfinis. Pour un rôle plus permissif qui vous permet de gérer des dossiers en plus de les renommer, demandez à votre administrateur de vous attribuer l'un des rôles suivants :
- Administrateur de dossier de l'espace de stockage (
roles/storage.folderAdmin
) - Administrateur des objets de l'espace de stockage (
roles/storage.objectAdmin
) - Administrateur de l'espace de stockage (
roles/storage.admin
)
Pour connaître les rôles et les autorisations associées, consultez la page Rôles IAM pour Cloud Storage.
Renommer et déplacer un dossier
Console
- Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.
Dans la liste des buckets, cliquez sur le nom du bucket qui contient le dossier que vous souhaitez déplacer ou renommer.
Sur la page Informations sur le bucket, recherchez le dossier que vous souhaitez déplacer ou renommer.
Si vous souhaitez renommer le dossier, procédez comme suit:
Cliquez sur le menu
Autres actions du dossier.Cliquez sur Renommer le dossier.
Dans la fenêtre qui apparaît en superposition, saisissez un nouveau nom pour le dossier.
Cliquez sur Renommer.
Si vous souhaitez déplacer le dossier dans un autre dossier, procédez comme suit :
Cliquez sur le menu
Autres actions du dossier.Cliquez sur Déplacer le dossier.
Dans la fenêtre qui apparaît en superposition, cliquez sur Parcourir.
Sélectionnez le dossier de destination du dossier que vous déplacez. Vous pouvez également cliquer sur
pour créer un dossier avant de le sélectionner comme dossier de destination.Cliquez sur Sélectionner.
Cliquez sur Déplacer.
Pour savoir comment obtenir des informations détaillées sur les erreurs liées aux opérations Cloud Storage ayant échoué dans la console Google Cloud, consultez la section Dépannage.
Ligne de commande
Pour renommer ou déplacer des dossiers dans un bucket doté d'un espace de noms hiérarchique, exécutez la commande gcloud storage mv
:
gcloud storage mv gs://BUCKET_NAME/FOLDER1 gs://BUCKET_NAME/FOLDER2
Où :
BUCKET_NAME
correspond au nom du bucket contenant le dossier que vous souhaitez renommer ou déplacer. Exemple :my-bucket
FOLDER1
correspond au nom du dossier d'origine que vous souhaitez renommer ou déplacer. Exemple :my-src-folder
FOLDER2
est le nouveau nom du dossier de destination. Exemple :my-dest-folder
Si le nouveau nom que vous choisissez est déjà utilisé par un dossier existant, le dossier d'origine est déplacé dans le dossier existant et devient un dossier enfant. Par exemple, si vous renommezmy-dest-folder
enmy-dest-folder1
(et quemy-dest-folder1
existe déjà), le résultat estmy-dest-folder1/my-dest-folder/
. Si le nouveau nom que vous choisissez n'existe pas déjà, le dossier d'origine est renommé en conséquence.
La réponse est semblable à ceci :
Copying gs://my-bucket/my-src-folder to gs://hns-bucket/my-dest-folder...
Bibliothèques clientes
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
API REST
API JSON
Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête
Authorization
.Utilisez
cURL
pour appeler l'API JSON avec une requête permettant de renommer des dossiers:curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/folders/SOURCE_PATH/renameTo/folders/DESTINATION_PATH"
Où :
BUCKET_NAME
correspond au nom du bucket contenant le dossier que vous souhaitez renommer ou déplacer. Exemple :my-bucket
SOURCE_PATH
est le chemin d'accès au format URL du dossier source. Par exemple,my-src-folder/
, encodé au format URL :my-src-folder%2F
.DESTINATION_PATH
correspond au chemin d'accès au dossier de destination encodé au format URL. Par exemple,my-dest-folder/
, encodé au format URL :my-dest-folder%2F
.
Étapes suivantes
- Créer et gérer des dossiers
- Utilisez un espace de noms hiérarchique pour les charges de travail Hadoop.
Faites l'essai
Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de Cloud Storage en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
Profiter d'un essai gratuit de Cloud Storage