Questo tutorial descrive come configurare un bucket Cloud Storage per ospitare un sito web statico per un dominio di tua proprietà. Le pagine web statiche possono contenere tecnologie lato client come HTML, CSS e JavaScript. Non possono contenere contenuti dinamici come script lato server come PHP.
Questo tutorial mostra come pubblicare contenuti tramite HTTP. Per un tutorial che utilizza HTTPS, consulta Hosting di un sito web statico.
Per esempi e suggerimenti sulle pagine web statiche, inclusa la modalità di hosting di asset statici per un sito web dinamico, consulta la pagina Sito web statico.
Obiettivi
In questo tutorial, imparerai a:- Indirizza il tuo dominio a Cloud Storage utilizzando un record
CNAME
. - Crea un bucket collegato al tuo dominio.
- Carica e condividi i file del tuo sito.
- Testa il sito web.
Costi
Questo tutorial utilizza il seguente componente fatturabile di Google Cloud:
- Cloud Storage
Consulta il suggerimento Monitoraggio degli addebiti per lo spazio di archiviazione per informazioni dettagliate sugli addebiti che potresti dover sostenere per l'hosting di un sito web statico e la pagina Prezzi per informazioni dettagliate sui costi di Cloud Storage.
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Avere un dominio di tua proprietà o che gestisci. Se non hai un dominio esistente, esistono molti servizi tramite i quali puoi registrarne uno nuovo, ad esempio Cloud Domains.
Questo tutorial utilizza il dominio
example.com
. - Verifica di possedere o gestire il dominio che utilizzerai. Assicurati di verificare il dominio di primo livello, ad esempio
example.com
, e non un sottodominio, ad esempiowww.example.com
.Nota: se sei il proprietario del dominio che stai associando a un bucket, potresti aver già eseguito questo passaggio in passato. Se hai acquistato il dominio tramite Cloud Domains, la verifica è automatica.
Connessione del dominio a Cloud Storage
Per collegare il tuo dominio a Cloud Storage, crea un record CNAME
tramite il tuo servizio di registrazione del dominio. Un record CNAME
è un tipo di record DNS. Indirizza il traffico che richiede un URL dal tuo dominio alle risorse che vuoi pubblicare, in questo caso gli oggetti nei tuoi bucket Cloud Storage.
Per www.example.com
, il record CNAME
potrebbe contenere le seguenti informazioni:
NAME TYPE DATA www CNAME c.storage.googleapis.com.
Per ulteriori informazioni sui reindirizzamenti CNAME
, consulta URI per l'alias CNAME
.
Per collegare il tuo dominio a Cloud Storage:
Crea un record
CNAME
che rimandi ac.storage.googleapis.com.
.Il servizio di registrazione del dominio dovrebbe offrire un modo per amministrare il tuo dominio, inclusa l'aggiunta di un record
CNAME
. Ad esempio, se utilizzi Cloud DNS, le istruzioni per aggiungere record di risorse sono disponibili nella pagina Aggiungere, modificare ed eliminare record.
Creazione di un bucket
Crea un bucket il cui nome corrisponda a CNAME
che hai creato per il tuo dominio.
Ad esempio, se hai aggiunto un record CNAME
che rimanda dal sottodominio www
di
example.com
a c.storage.googleapis.com.
, il comando Google Cloud CLI per creare
un bucket con il nome www.example.com
sarà simile al seguente:
gcloud storage buckets create gs://www.example.com --location=US
Per istruzioni complete sulla creazione di bucket con diversi strumenti, consulta Creare bucket.
Caricamento dei file del sito
Per aggiungere al bucket i file che vuoi che vengano pubblicati sul tuo sito web:
Console
- Nella console Google Cloud, vai alla pagina Bucket in Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket che hai creato.
Fai clic sul pulsante Carica file nella scheda Oggetti.
Nella finestra di dialogo dei file, vai al file desiderato e selezionalo.
Al termine del caricamento, dovresti vedere il nome del file insieme alle informazioni sul file visualizzate nel bucket.
Riga di comando
Utilizza il comando gcloud storage cp
per copiare i file nel bucket.
Ad esempio, per copiare il file index.html
dalla posizione corrente
Desktop
:
gcloud storage cp Desktop/index.html gs://www.example.com
Se l'operazione ha esito positivo, la risposta è simile al seguente esempio:
Completed files 1/1 | 164.3kiB/164.3kiB
Librerie client
C++
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
C#
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Go
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Il seguente esempio carica un singolo oggetto:
L'esempio seguente carica più oggetti contemporaneamente:
Il seguente esempio carica contemporaneamente tutti gli oggetti con un prefisso comune:
Node.js
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Il seguente esempio carica un singolo oggetto:
L'esempio seguente carica più oggetti contemporaneamente:
Il seguente esempio carica contemporaneamente tutti gli oggetti con un prefisso comune:
PHP
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Python
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Il seguente esempio carica un singolo oggetto:
L'esempio seguente carica più oggetti contemporaneamente:
Il seguente esempio carica contemporaneamente tutti gli oggetti con un prefisso comune:
Ruby
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
API REST
API JSON
Avere installato e inizializzatogcloud CLI, che consente di generare un token di accesso per l'intestazione
Authorization
.Utilizza
cURL
per chiamare l'API JSON con una richiesta diPOST
oggetto. Per la pagina di indice di 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
Avere installato e inizializzatogcloud CLI, che consente di generare un token di accesso per l'intestazione
Authorization
.Utilizza
cURL
per chiamare l'API XML con una richiesta diPUT
oggetto. Per la pagina di indice di 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"
Condividere i file
Per rendere leggibili tutti gli oggetti in un bucket da parte di chiunque sulla rete internet pubblica:
Console
- Nella console Google Cloud, vai alla pagina Bucket in Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket da rendere pubblico.
Seleziona la scheda Autorizzazioni nella parte superiore della pagina.
Se nel riquadro Accesso pubblico è visualizzata la dicitura Non pubblico, fai clic sul pulsante Rimuovi la prevenzione dell'accesso pubblico e poi su Conferma nella finestra di dialogo visualizzata.
Fai clic sul pulsante add_box Concedi accesso.
Viene visualizzata la finestra di dialogo Aggiungi entità.
Nel campo Nuove entità, inserisci
allUsers
.Nel menu a discesa Seleziona un ruolo, seleziona il sottomenu Cloud Storage e fai clic sull'opzione Visualizzatore oggetti Storage.
Fai clic su Salva.
Fai clic su Consenti accesso pubblico.
Dopo la condivisione pubblica, viene visualizzata un'icona del link per ogni oggetto nella colonna Accesso pubblico. Puoi fare clic su questa icona per ottenere l'URL dell'oggetto.
Riga di comando
Utilizza il comando buckets add-iam-policy-binding
:
gcloud storage buckets add-iam-policy-binding gs://www.example.com --member=allUsers --role=roles/storage.objectViewer
Librerie client
C++
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
C#
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Go
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Node.js
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
PHP
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Python
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Ruby
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
API REST
API JSON
Avere installato e inizializzatogcloud CLI, che consente di generare un token di accesso per l'intestazione
Authorization
.Crea un file JSON contenente le seguenti informazioni:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Utilizza
cURL
per chiamare l'API JSON con una richiestaPUT
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"
Dove:
JSON_FILE_NAME
è il percorso del file JSON che hai creato nel passaggio 2.BUCKET_NAME
è il nome del bucket cuyos oggetti vuoi rendere pubblici. Ad esempio,my-bucket
.
API XML
La leggibilità pubblica di tutti gli oggetti in un bucket non è supportata dall'API XML. Utilizza invece la console Google Cloud o gcloud storage
.
Se vuoi, in alternativa puoi rendere accessibili pubblicamente parti del tuo bucket.
I visitatori ricevono un codice di risposta http 403
quando richiedono l'URL di un
file non pubblico o inesistente. Consulta la sezione successiva per informazioni su come aggiungere una pagina di errore che utilizza un codice di risposta http 404
.
Consigliato: assegnazione di pagine speciali
Puoi assegnare un suffisso alla pagina di indice, controllato dalla proprietà MainPageSuffix
e una pagina di errore personalizzata, controllata dalla proprietà NotFoundPage
. L'assegnazione di una delle due è facoltativa, ma senza una pagina indice non viene visualizzato nulla quando gli utenti accedono al tuo sito di primo livello, ad esempiohttp://www.example.com
. Per ulteriori informazioni, consulta Esempi di configurazione del sito web.
Nel seguente esempio, MainPageSuffix
è impostato su index.html
e
NotFoundPage
è impostato su 404.html
:
Console
- Nella console Google Cloud, vai alla pagina Bucket in Cloud Storage.
Nell'elenco dei bucket, individua il bucket che hai creato.
Fai clic sul menu Sovraccarico del bucket (more_vert) associato al bucket e seleziona Modifica la configurazione del sito web.
Nella finestra di dialogo di configurazione del sito web, specifica la pagina principale e la pagina di errore.
Fai clic su Salva.
Riga di comando
Utilizza il comando buckets update
con i flag --web-main-page-suffix
e --web-error-page
:
gcloud storage buckets update gs://www.example.com --web-main-page-suffix=index.html --web-error-page=404.html
In caso di esito positivo, il comando restituisce:
Updating gs://www.example.com/... Completed 1
Librerie client
C++
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
C#
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Go
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Node.js
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
PHP
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Python
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Ruby
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
API REST
API JSON
Avere installato e inizializzatogcloud CLI, che consente di generare un token di accesso per l'intestazione
Authorization
.Crea un file JSON che imposti le proprietà
mainPageSuffix
enotFoundPage
in un oggettowebsite
sulle pagine desiderate:{ "website":{ "mainPageSuffix": "index.html", "notFoundPage": "404.html" } }
Utilizza
cURL
per chiamare l'API JSON con una richiestaPATCH
Bucket. Per 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
Avere installato e inizializzatogcloud CLI, che consente di generare un token di accesso per l'intestazione
Authorization
.Crea un file XML che imposti gli elementi
MainPageSuffix
eNotFoundPage
in un elementoWebsiteConfiguration
per le pagine che ti interessano:<WebsiteConfiguration> <MainPageSuffix>index.html</MainPageSuffix> <NotFoundPage>404.html</NotFoundPage> </WebsiteConfiguration>
Utilizza
cURL
per chiamare l'API XML con una richiestaPUT
Bucket e il parametro della stringa di querywebsiteConfig
. Per 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
Test del sito web
Verifica che i contenuti vengano pubblicati dal bucket richiedendo il nome di dominio in un browser. Puoi farlo con un percorso a un oggetto o solo con il nome di dominio, se imposti la proprietà MainPageSuffix
.
Ad esempio, se hai un oggetto denominato test.html
archiviato in un bucket denominato
www.example.com
, verifica che sia accessibile andando su
www.example.com/test.html
nel browser.
Esegui la pulizia
Al termine del tutorial, puoi eliminare le risorse che hai creato in modo che smettano di utilizzare la quota e di generare addebiti. Le sezioni seguenti descrivono come eliminare o disattivare queste risorse.
Elimina il progetto
Il modo più semplice per eliminare la fatturazione è eliminare il progetto che hai creato per il tutorial.
Per eliminare il progetto:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Passaggi successivi
- Scopri esempi e suggerimenti per l'utilizzo dei bucket per ospitare un sito web statico.
- Visita la sezione sulla risoluzione dei problemi per l'hosting di un sito web statico.
- Scopri di più sull'hosting di asset statici per un sito web dinamico.
- Scopri tutte le opzioni di pubblicazione web.
- Prova le soluzioni di avvio rapido di Google Cloud che utilizzano Cloud Storage.