2011-11-09 22 views
7

Vorremmo iniziare a utilizzare Google Cloud Storage come archivio permanente per i file caricati dagli utenti. Purtroppo, non posso aggiungere l'app Identity (applicazione-id @ appspot.gserviceaccount.com) al nostro "team", perché la nostra squadra si basa su Google Apps per i domini, e non permette alcun indirizzo di posta elettronica che non sono sul nostro dominio per essere nella squadra.di autenticazione di Google Cloud Storage per App Engine

Esiste un metodo consigliato per autenticare l'istanza di App Engine in questo caso?

+0

Outta curiosità, quali caratteristiche stai afferrando dal Cloud Storage che non sarà accessibile tramite App Engine + blobstore? – kamens

+1

Vogliamo esporre i dati che gli utenti devono scaricare e Cloud Storage è molto più veloce ed economico rispetto al servizio attraverso appengine. Fondamentalmente, lo stiamo usando come CDN facile da invalidare. – tghw

+0

Gotcha. Abbiamo avuto un po 'di fortuna (prestazioni) con l'invio di intestazioni cache con le nostre risposte blobstore (i server di frontend di Google sembrano gestire rapidamente la maggior parte delle richieste successivamente). La parte facile da invalidare è una storia diversa. – kamens

risposta

3

Creare un nuovo team utilizzando un account Gmail. Aggiungi tutti i membri del tuo team (inclusa l'app) ed elimina l'account Gmail dal team.

Sì, è un hack orribile. Mi dispiace per quello

4

È inoltre possibile aggirare il problema utilizzando GSUtil a concedere in modo esplicito l'accesso in scrittura al secchio si è creato in modo che il vostro account di servizio "[email protected]" hanno sufficiente accesso al secchio. Per impostazione predefinita, il tuo bucket non è accessibile ad altri.

Cosa è necessario fare con GSUtil di modificare l'ACL sul secchio è questo:

  • Recuperare l'ACL del secchio: gsutil getacl gs: // MyBucket> acl.txt
  • Apportare modifiche ad acl.txt come aggiungere una sovvenzione aggiuntiva per l'utente "[email protected]" per avere accesso in scrittura al bucket, consultare ACL doc. su come fare questo: http://code.google.com/apis/storage/docs/accesscontrol.html#applyacls In particolare, potrebbe essere simile a questo per aggiungere al acl.txt scaricato:

    <Entry> 
        <Scope type="UserByEmail"> 
        <EmailAddress>[email protected]</EmailAddress> 
        <Name>Service Account</Name> 
        </Scope> 
        <Permission>FULL_CONTROL</Permission> 
    </Entry> 
    
  • aggiornamento ACL sul secchio: gsutil setacl acl.txt gs: // yourbucket

Spero che questo aiuti!

+0

Hai provato davvero, ha funzionato? Le istruzioni in particolare chiedono di aggiungere autorizzazioni al progetto e non al bucket: "Aggiungi l'account di servizio come un editor di progetto al progetto Console API di Google che il bucket appartiene a" – Yasser

+0

Posso confermare che questo (utilizzando gsutil) ha funzionato anche per noi – tosh

+0

Questo ha funzionato per me. Ho ricevuto il nome dell'account di servizio dalla console di App Engine in "Impostazioni dell'applicazione". –

-1

Per utilizzare il Cloud Storage di Google si può passare attraverso questo link https://developers.google.com/storage/ e quindi creare il nuovo account quindi utilizzare.

+0

Questo non è quello che veniva chiesto qui –

Problemi correlati