En esta página, se describe cómo cambiar el nombre de las carpetas de un bucket con espacio de nombres jerárquico habilitado
La operación de cambio de nombre cambia el nombre de una carpeta, sus carpetas secundarias y los recursos asociados, incluidos objetos y carpetas administradas en una única acción atómica.
La operación de cambio de nombre es atómica. La operación se completa correctamente y mueve los recursos a su nueva ruta de acceso o falla con un error. En caso de error, todos los recursos se restablecen a su estado original.
En un bucket con el espacio de nombres jerárquico habilitado, cambiar el nombre de una carpeta es operación de solo metadatos. No implica mover físicamente o copiar los objetos dentro de ella, por lo que no se generan costos de copia de objetos.
Sin embargo, en un bucket que no tiene habilitado el espacio de nombres jerárquico, las carpetas simulados. Para cambiar el nombre o mover una carpeta simulada, es necesario copiar y borrar cada objeto que contiene. Si tu carpeta contiene muchos objetos, el proceso de cambio de nombre puede ser ineficiente y costoso. Cambiar el nombre o mover una carpeta simulada tampoco es atómico, lo que significa que, si el proceso falla, tu bucket podría quedar en un estado de incoherencia y solo se moverán algunos objetos.
Durante el proceso de cambio de nombre de la carpeta, puedes leer y enumerar los recursos a los que se les cambia el nombre. Sin embargo, no puedes ejecutar operaciones de escritura en los recursos afectados.
La operación para cambiar el nombre de la carpeta inicia una operación de larga duración en un bucket.
Roles obligatorios
Para obtener los permisos necesarios para cambiar el nombre de las carpetas en los buckets, pídele a tu administrador que te otorgue el rol de usuario de objeto (roles/storage.objectUser
) de IAM en el bucket.
Para obtener información sobre cómo otorgar roles en proyectos, consulta Administra el acceso a los proyectos.
Para ver los permisos exactos que son necesarios, expande la sección Permisos necesarios:
Permisos necesarios
storage.folders.rename
- Se necesita este permiso en la carpeta de origen.
storage.folders.create
- Se necesita este permiso en la carpeta de destino.
También puedes obtener los permisos anteriores con otros roles personalizados o roles predefinidos. Para un rol más permisivo que te permita administrar carpetas además de cambiar el nombre de las carpetas, pídele a tu administrador que te otorgue uno de los siguientes roles:
- Administrador de carpetas de almacenamiento (
roles/storage.folderAdmin
) - Administrador de objetos de almacenamiento (
roles/storage.objectAdmin
) - Administrador de almacenamiento (
roles/storage.admin
)
Si quieres ver qué roles están asociados con qué permisos, consulta Roles de IAM para Cloud Storage.
Volver a nombrar una carpeta
Línea de comandos
Para cambiar el nombre de las carpetas dentro de un bucket con espacio de nombres jerárquico, ejecuta el siguiente comando:
gcloud storage mv gs://BUCKET_NAME/FOLDER1 gs://BUCKET_NAME/FOLDER2
Aquí:
BUCKET_NAME
es el nombre del bucket que contiene la carpeta a la que le quieres cambiar el nombre. Por ejemplo,my-bucket
FOLDER1
es el nombre de la carpeta original a la que le quieres cambiar el nombre. Por ejemplo,my-src-folder
FOLDER2
es el nombre nuevo de la carpeta de destino. Por ejemplo,my-dest-folder
Si una carpeta existente ya usa el nuevo nombre que elegiste, la carpeta original se moverá dentro de la carpeta existente y se convertirá en una carpeta secundaria. Por ejemplo, si cambias el nombre demy-dest-folder
amy-dest-folder1
(ymy-dest-folder1
ya existe), el resultado esmy-dest-folder1/my-dest-folder/
. Si el nombre nuevo que eliges aún no existe, se modificará el nombre de la carpeta original para que coincida con el nuevo.
La respuesta se ve como el siguiente ejemplo:
Copying gs://my-bucket/my-src-folder to gs://hns-bucket/my-dest-folder...
Bibliotecas cliente
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C++.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Go.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage PHP.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Ruby.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
API de REST
API de JSON
Tener la gcloud CLI instalada e inicializadaa fin de generar un token de acceso para el encabezado
Authorization
.Como alternativa, puedes crear un token de acceso con OAuth 2.0 Playground y, luego, incluirlo en el encabezado
Authorization
.Usa
cURL
para llamar a la API de JSON con una solicitud para cambiar el nombre de las carpetas: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"
Aquí:
BUCKET_NAME
es el nombre del bucket que contiene la carpeta a la que deseas cambiarle el nombre. Por ejemplo,my-bucket
SOURCE_PATH
es la ruta codificada como URL de la carpeta de origen. Por ejemplo,my-src-folder/
, codificado en URL comomy-src-folder%2F
.DESTINATION_PATH
es la ruta con codificación URL de la carpeta de destino. Por ejemplo,my-dest-folder/
, codificado en URL comomy-dest-folder%2F
.
Próximos pasos
- Crea y administra carpetas.
- Usa el espacio de nombres jerárquico para las cargas de trabajo de Hadoop.
Pruébalo tú mismo
Si es la primera vez que usas Google Cloud, crea una cuenta para evaluar el rendimiento de Cloud Storage en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
Probar Cloud Storage gratis