Nell'ambiente standard PHP 5 di Google App Engine, il file system locale in cui è stato eseguito il deployment dell'applicazione non è scrivibile. Questo comportamento garantisce la sicurezza e la scalabilità dell'applicazione.
Tuttavia, se la tua applicazione deve scrivere e leggere file in fase di runtime, l'ambiente standard PHP 5 fornisce un wrapper stream integrato di Google Cloud Storage che ti consente di utilizzare molte delle funzioni di file system PHP standard per leggere e scrivere file.
Esistono due modi per scrivere file in Google Cloud Storage:
- Scrivere file dall'app
- Scrittura file semplice
- Scrittura file in streaming
- Consenti all'utente di caricare file su Google Cloud Storage
Scrittura di file dall'app
Se scrivi file dall'app, puoi scrivere l'intero file contemporaneamente oppure eseguire lo streaming della scrittura del file.
Il wrapper stream di App Engine per Cloud Storage è integrato nel runtime e viene utilizzato quando fornisci un nome file che inizia con gs://
. Il wrapper richiede che il nome del bucket o dell'oggetto file sia nel formato:
gs://bucket_name/desired_object_name
Scrittura file semplice
Per scrivere dati in Google Cloud Storage dalla tua app, utilizza file_put_contents
con un URL di spazio di archiviazione sul cloud valido. Ad esempio:
dove my_bucket
è un
bucket Google Cloud Storage configurato correttamente.
In alternativa, se vuoi utilizzare le opzioni di flusso per fornire autorizzazioni, memorizzazione nella cache e/o opzioni dei metadati, puoi scrivere il file come segue:
Scrittura file in streaming
In alternativa, puoi utilizzare fopen
/fwrite
per scrivere dati in modalità flusso:
Tieni presente che quando utilizzi i flussi di dati, i dati verranno scaricati in Google Cloud Storage in blocchi più piccoli. Non è necessario conoscere la lunghezza totale dei dati da scrivere in anticipo: verrà calcolata alla chiusura della risorsa file:
Queste sono le modalità di scrittura di file di base. Per casi d'uso speciali e una gestione più avanzata dei file, consulta gli argomenti elencati in Dove andare dopo.
Eliminazione di file in corso...
Per eliminare il file stesso, utilizza la funzione PHP unlink().
Caricamenti utente
Per maggiori dettagli su questa opzione di scrittura file, consulta Consentire agli utenti di caricare file
Lettura di file
Per informazioni sulla lettura dei file da Google Cloud Storage, consulta Fornire l'accesso pubblico ai file
Configurazione e requisiti
Devi attivare Google Cloud Storage e creare un bucket. Per ulteriori dettagli, consulta Configurazione.
Funzioni di file system PHP 5 supportate
Sono supportate molte delle funzioni dei file PHP 5 di uso comune, oltre alle informazioni sui file e alle funzioni di directory. Per un elenco completo delle funzioni PHP supportate, consulta il supporto per le funzioni di file system PHP 5.
Funzionalità estese fornite dall'API Cloud Storage Tools
Il wrapper del flusso di Google Cloud Storage consente di utilizzare chiamate al file system PHP. Tuttavia, sono disponibili funzionalità estese di cui potresti aver bisogno per utilizzare in modo ottimale Google Cloud Storage. Queste funzionalità estese sono fornite nell'API Cloud Storage Tools:
Questa API fornisce un insieme di funzioni che supportano la pubblicazione di file e immagini, oltre ad altre utili utilità. Tratteremo vari di questi argomenti nelle altre pagine degli argomenti.
Esiste un altro modo per leggere e scrivere file?
Un'app App Engine PHP 5 deve utilizzare il wrapper stream Cloud Storage per scrivere file in fase di runtime. Tuttavia, se un'app deve leggere file che sono statici, puoi eventualmente leggere i file statici caricati con l'app utilizzando le funzioni del file system PHP come file_get_contents
.
Ad esempio:
in cui il percorso specificato deve essere un percorso relativo allo script che vi accede.
Devi caricare il file o i file in una sottodirectory dell'applicazione quando esegui il deployment dell'app in App Engine e devi configurare il file app.yaml
in modo che l'app possa accedere a questi file. Per i dettagli completi, consulta
Configurazione dell'applicazione PHP 5 con app.yaml
.
Nella configurazione di app.yaml
, tieni presente che se usi un gestore di directory o file statico (static_files
o static_dir
), devi specificare application_readable
impostato su true, altrimenti la tua app non sarà in grado di leggere i file.
Tuttavia, se i file sono pubblicati da un gestore script
, questa operazione non è necessaria, perché questi file sono leggibili dai gestori di script per impostazione predefinita.
Passaggi successivi
Leggi i seguenti argomenti per maggiori dettagli sull'utilizzo dell'API Cloud Storage Tools:
- Configurazione, istruzioni rapide per la configurazione.
- Fornire l'accesso pubblico ai file mostra come consentire agli utenti di scaricare file tramite il browser.
- Se consenti agli utenti di caricare file, mostra come caricare file direttamente tramite il browser, ignorando l'app.
- L'utilizzo dei file immagine mostra i modi ottimali per gestire e pubblicare le immagini.
- La gestione avanzata dei file copre quanto segue:
- Opzioni relative ad autorizzazioni, memorizzazione nella cache e stream di metadati.
- Supporto delle funzioni di file system PHP.
- Utilizzo di
include
PHP erequire
. - Lettura e scrittura di metadati personalizzati.
- Lettura dei file memorizzati nella cache.