En este tutorial se describe cómo configurar un segmento de Cloud Storage para alojar un sitio web estático en un dominio de tu propiedad. Las páginas web estáticas pueden contener tecnologías del lado del cliente, como HTML, CSS y JavaScript. No pueden contener contenido dinámico, como secuencias de comandos del lado del servidor (por ejemplo, PHP).
En este tutorial se explica cómo servir contenido a través de HTTP. Para ver un tutorial que usa HTTPS, consulta Alojar un sitio web estático.
Para ver ejemplos y consejos sobre páginas web estáticas, incluido cómo alojar recursos estáticos para un sitio web dinámico, consulta la página de sitios web estáticos.
Conectar tu dominio a Cloud Storage
Para conectar tu dominio a Cloud Storage, crea un registro CNAME
a través de tu servicio de registro de dominios. Un registro CNAME
es un tipo de registro DNS. Dirige el tráfico que solicita una URL de tu dominio a los recursos que quieras servir, en este caso, objetos de tus segmentos de Cloud Storage.
En el caso de www.example.com
, el registro CNAME
puede contener la siguiente información:
NAME TYPE DATA www CNAME c.storage.googleapis.com.
Para obtener más información sobre las redirecciones CNAME
, consulta URI para alias de CNAME
.
Para conectar tu dominio a Cloud Storage, sigue estos pasos:
Crea un registro
CNAME
que apunte ac.storage.googleapis.com.
.El servicio de registro de tu dominio debería ofrecerte una forma de administrarlo, incluida la opción de añadir un registro
CNAME
. Por ejemplo, si usas Cloud DNS, puedes consultar las instrucciones para añadir registros de recursos en la página Añadir, modificar y eliminar registros.
Crear un segmento
Crea un segmento cuyo nombre coincida con el CNAME
que has creado para tu dominio.
Por ejemplo, si has añadido un registro CNAME
que apunta del subdominio www
de example.com
a c.storage.googleapis.com.
, el comando de la CLI de Google Cloud para crear un segmento con el nombre www.example.com
sería similar al siguiente:
gcloud storage buckets create gs://www.example.com --location=US
Para obtener instrucciones completas sobre cómo crear segmentos con diferentes herramientas, consulta Crear segmentos.
Subir los archivos de tu sitio
Para añadir a tu contenedor los archivos que quieres que sirva tu sitio web, sigue estos pasos:
Consola
- En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.
En la lista de segmentos, haz clic en el nombre del segmento que has creado.
En la pestaña Objetos, haz clic en el botón Subir archivos.
En el cuadro de diálogo de archivos, busca el archivo que quieras y selecciónalo.
Una vez que se haya completado la subida, debería ver el nombre del archivo junto con la información del archivo en el contenedor.
Línea de comandos
Usa el comando gcloud storage cp
para copiar archivos en tu segmento.
Por ejemplo, para copiar el archivo index.html
desde su ubicación actual:
Desktop
gcloud storage cp Desktop/index.html gs://www.example.com
Si la acción se realiza correctamente, la respuesta se parecerá al siguiente ejemplo:
Completed files 1/1 | 164.3kiB/164.3kiB
Bibliotecas de cliente
C++
Para obtener más información, consulta la documentación de referencia de la API C++ de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
C#
Para obtener más información, consulta la documentación de referencia de la API C# de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Go
Para obtener más información, consulta la documentación de referencia de la API Go de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Java
Para obtener más información, consulta la documentación de referencia de la API Java de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se sube un objeto individual:
En el siguiente ejemplo se suben varios objetos simultáneamente:
En el siguiente ejemplo se suben todos los objetos con un prefijo común de forma simultánea:
Node.js
Para obtener más información, consulta la documentación de referencia de la API Node.js de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se sube un objeto individual:
En el siguiente ejemplo se suben varios objetos simultáneamente:
En el siguiente ejemplo se suben todos los objetos con un prefijo común de forma simultánea:
PHP
Para obtener más información, consulta la documentación de referencia de la API PHP de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Python
Para obtener más información, consulta la documentación de referencia de la API Python de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se sube un objeto individual:
En el siguiente ejemplo se suben varios objetos simultáneamente:
En el siguiente ejemplo se suben todos los objetos con un prefijo común de forma simultánea:
Ruby
Para obtener más información, consulta la documentación de referencia de la API Ruby de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
APIs REST
API JSON
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API JSON con una solicitud dePOST
Object. En el caso de la página de índice de www.example.com:curl -X POST --data-binary @index.html \ -H "Content-Type: text/html" \ -H "Authorization: $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/upload/storage/v1/b/www.example.com/o?uploadType=media&name=index.html"
API XML
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API XML con una solicitud dePUT
Object. En el caso de la página de índice de www.example.com:curl -X PUT --data-binary @index.html \ -H "Authorization: $(gcloud auth print-access-token)" \ -H "Content-Type: text/html" \ "https://storage.googleapis.com/www.example.com/index.html"
Compartir archivos
Para que todos los objetos de un segmento se puedan leer en la red pública de Internet, sigue estos pasos:
Consola
- En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.
En la lista de segmentos, haga clic en el nombre del segmento que quiera hacer público.
Selecciona la pestaña Permisos, situada en la parte superior de la página.
Si en el panel Acceso público se indica No público, haz clic en el botón Quitar prevención de acceso público y, a continuación, en Confirmar en el cuadro de diálogo que aparece.
Haz clic en el botón add_box Conceder acceso.
Aparecerá el cuadro de diálogo Añadir principales.
En el campo Nuevos directores, introduce
allUsers
.En el menú desplegable Seleccionar un rol, selecciona el submenú Cloud Storage y haz clic en la opción Visor de objetos de Storage.
Haz clic en Guardar.
Haz clic en Permitir acceso público.
Una vez que se haya compartido públicamente, aparecerá un icono de enlace en cada objeto de la columna Acceso público. Puedes hacer clic en este icono para obtener la URL del objeto.
Línea de comandos
Usa el comando buckets add-iam-policy-binding
:
gcloud storage buckets add-iam-policy-binding gs://www.example.com --member=allUsers --role=roles/storage.objectViewer
Bibliotecas de cliente
C++
Para obtener más información, consulta la documentación de referencia de la API C++ de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
C#
Para obtener más información, consulta la documentación de referencia de la API C# de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Go
Para obtener más información, consulta la documentación de referencia de la API Go de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Java
Para obtener más información, consulta la documentación de referencia de la API Java de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Node.js
Para obtener más información, consulta la documentación de referencia de la API Node.js de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
PHP
Para obtener más información, consulta la documentación de referencia de la API PHP de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Python
Para obtener más información, consulta la documentación de referencia de la API Python de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Ruby
Para obtener más información, consulta la documentación de referencia de la API Ruby de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
APIs REST
API JSON
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Crea un archivo JSON que contenga la siguiente información:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Usa
cURL
para llamar a la API JSON con una solicitud dePUT
Bucket:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
Donde:
JSON_FILE_NAME
es la ruta del archivo JSON que has creado en el paso 2.BUCKET_NAME
es el nombre del contenedor cuyos objetos quieres hacer públicos. Por ejemplo,my-bucket
.
API XML
La API XML no admite que todos los objetos de un segmento sean legibles públicamente. Usa la Google Cloud consola o gcloud storage
en su lugar.
Si quieres, también puedes hacer que algunas partes de tu segmento sean accesibles públicamente.
Los visitantes reciben un código de respuesta http 403
cuando solicitan la URL de un archivo no público o inexistente. En la siguiente sección se explica cómo añadir una página de error que use un código de respuesta http 404
.
Recomendación: asignar páginas especializadas
Puede asignar un sufijo de página de índice, que se controla mediante la propiedad MainPageSuffix
NotFoundPage
, y una página de error personalizada, que se controla mediante la propiedad MainPageSuffix
NotFoundPage
. Asignar una página de índice es opcional, pero, si no lo haces, no se mostrará nada cuando los usuarios accedan a tu sitio de nivel superior, por ejemplo, http://www.example.com
. Para obtener más información, consulta Ejemplos de configuración de sitios web.
En el siguiente ejemplo, MainPageSuffix
se define como index.html
y NotFoundPage
se define como 404.html
:
Consola
- En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.
En la lista de segmentos, busca el que has creado.
Haz clic en el menú Desbordamiento de contenedor (more_vert) asociado al contenedor y selecciona Editar configuración del sitio web.
En el cuadro de diálogo de configuración del sitio web, especifica la página principal y la página de error.
Haz clic en Guardar.
Línea de comandos
Usa el comando buckets update
con las marcas --web-main-page-suffix
y --web-error-page
:
gcloud storage buckets update gs://www.example.com --web-main-page-suffix=index.html --web-error-page=404.html
Si la acción se realiza correctamente, el comando mostrará lo siguiente:
Updating gs://www.example.com/... Completed 1
Bibliotecas de cliente
C++
Para obtener más información, consulta la documentación de referencia de la API C++ de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
C#
Para obtener más información, consulta la documentación de referencia de la API C# de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Go
Para obtener más información, consulta la documentación de referencia de la API Go de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Java
Para obtener más información, consulta la documentación de referencia de la API Java de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Node.js
Para obtener más información, consulta la documentación de referencia de la API Node.js de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
PHP
Para obtener más información, consulta la documentación de referencia de la API PHP de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Python
Para obtener más información, consulta la documentación de referencia de la API Python de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Ruby
Para obtener más información, consulta la documentación de referencia de la API Ruby de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
APIs REST
API JSON
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Crea un archivo JSON que defina las propiedades
mainPageSuffix
ynotFoundPage
en un objetowebsite
para las páginas que quieras:{ "website":{ "mainPageSuffix": "index.html", "notFoundPage": "404.html" } }
Usa
cURL
para llamar a la API JSON con una solicitud dePATCH
contenedor. En www.example.com:curl -X PATCH --data-binary @web-config.json \ -H "Authorization: $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/www.example.com"
API XML
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Crea un archivo XML que defina los elementos
MainPageSuffix
yNotFoundPage
en un elementoWebsiteConfiguration
para las páginas que quieras:<WebsiteConfiguration> <MainPageSuffix>index.html</MainPageSuffix> <NotFoundPage>404.html</NotFoundPage> </WebsiteConfiguration>
Usa
cURL
para llamar a la API XML con una solicitud dePUT
contenedor y un parámetro de cadena de consultawebsiteConfig
. En www.example.com:curl -X PUT --data-binary @web-config.xml \ -H "Authorization: $(gcloud auth print-access-token)" \ https://storage.googleapis.com/www.example.com?websiteConfig
Prueba del sitio web
Verifica que el contenido se sirve desde el segmento solicitando el nombre de dominio en un navegador. Puedes hacerlo con una ruta a un objeto o solo con el nombre de dominio si defines la propiedad MainPageSuffix
.
Por ejemplo, si tienes un objeto llamado test.html
almacenado en un segmento llamado www.example.com
, comprueba que se puede acceder a él desde www.example.com/test.html
en tu navegador.