2013-04-12 39 views
5

Desidero pubblicare file statici archiviati in Google Cloud Storage per l'app ospitata nel motore dell'app. Nel file HTML, ho usatoServire file statici da Google Cloud Storage?

<link href="https://storage.cloud.google.com/my_bucket/custom.css" rel="stylesheet"> 

Funziona correttamente, se l'account Google di utenti registrati ha il permesso di accedere secchio. Poiché l'app è accessibile a chiunque non abbia accesso al mio bucket e in tal caso, i file statici non verranno pubblicati.

È possibile rendere pubblici file statici nel bucket? Ho creato file statici (custom.css) come "condivisi pubblicamente" (ACL impostato su "public-read"), ma altri utenti non possono accedervi.

+0

hai fatto questo impostando di default ACL nel bucket dopo aver aggiunto il file? –

+0

Ya. Ho usato files.gs.create ("/ gs/my_bucket/custom.css", acl = "public-read"). – rajpy

risposta

7

Non sono sicuro di come si caricano i file e perché la lettura pubblica non è impostata correttamente, ma è possibile modificarla tramite lo Google Cloud Storage Manager. Basta individuare il bucket e il file e fare clic sul segno di spunta Share Publicly per ottenere il collegamento.

list of files in the bucket on cloud storage

Oppure si può caricare il file utilizzando il gsutil con pubblico letto subito:

gsutil cp -a public-read custom.css gs://my_backet 
+0

Il segno di spunta era mancante! Grazie per l'immagine, altrimenti non avrei potuto trovarlo. – rajpy

0

Accanto di modificare manualmente ogni file statici tramite Google Cloud Storage Manager è anche possibile impostare il secchio per essere visualizzabile pubblicamente utilizzando gsutil:

Utilizzare acl per impostare public-read su oggetti bucket correnti

gsutil -m acl set -R -a public-read gs://BUCKET_NAME 

Usa defacl per impostare come predefinita per futuri arrivi:

gsutil -m defacl set public-read gs://BUCKET_NAME 

La casella di controllo "condiviso pubblicamente" saranno poi controllati automaticamente per ogni file caricati.

Per accessing bucket, assicurarsi che si dispone di immettere un ID autorizzato o e-mail per i gruppi e gli utenti e un dominio per il bucket permission altrimenti si otterrà un messaggio di errore del tipo:

'DefAclCommand' object has no attribute 'continue_on_error' 
Problemi correlati