Nell'ambiente standard PHP 5 di Google App Engine, il file system locale in cui viene eseguito il deployment dell'applicazione non è scrivibile. Questo comportamento garantisce la sicurezza e la scalabilità della tua applicazione.
Tuttavia, se la tua applicazione deve scrivere e leggere file in fase di runtime, l'ambiente standard PHP 5 fornisce un wrapper di stream Google Cloud Storage integrato che ti consente di utilizzare molte delle funzioni del file system PHP standard per leggere e scrivere file.
Esistono due modi per scrivere file in Google Cloud Storage:
- Scrivere file dall'app
- Scrittura semplice di file
- Scrittura di file in streaming
- Consenti all'utente di caricare file su Google Cloud Storage
Scrivere file dall'app
Se scrivi file dalla tua app, puoi scrivere l'intero file contemporaneamente oppure puoi trasmettere in streaming la scrittura del file.
Il wrapper di flusso 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 semplice di file
Per scrivere dati in Google Cloud Storage dalla tua app, utilizza
file_put_contents
, utilizzando 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 di metadati, puoi scrivere il file nel seguente modo:
Scrittura di file in streaming
In alternativa, puoi utilizzare fopen
/fwrite
per scrivere i dati in modalità streaming:
Tieni presente che quando utilizzi lo streaming, i dati vengono scaricati in Google Cloud Storage in blocchi più piccoli. Non è necessario conoscere in anticipo la lunghezza totale dei dati da scrivere: verrà calcolata alla chiusura della risorsa file:
Questi sono i modi di base per scrivere i file. Per casi d'uso speciali e una gestione dei file più avanzata, consulta gli argomenti elencati in Dove andare avanti.
Eliminazione di file
Se vuoi eliminare il file stesso, utilizza la funzione PHP unlink().
Caricamenti utente
Per maggiori dettagli su questa opzione di scrittura dei file, vedi Consentire agli utenti di caricare file
Lettura dei 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 maggiori dettagli, consulta la sezione Configurazione.
Funzioni del filesystem PHP 5 supportate
Sono supportate molte delle funzioni di file PHP 5 più utilizzate, insieme alle funzioni di informazioni sui file e sulle directory. Per un elenco completo delle funzioni PHP supportate, consulta Supporto delle funzioni del file system PHP 5.
Funzionalità estese fornite dall'API Cloud Storage Tools
Il wrapper di stream Google Cloud Storage ti consente di utilizzare le chiamate al file system PHP. Tuttavia, sono disponibili funzionalità estese che potrebbero essere necessarie per un utilizzo ottimale di 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, insieme ad altre utilità utili. Ne tratteremo diversi nelle altre pagine degli argomenti.
Esiste un altro modo per leggere e scrivere file?
Un'app PHP 5 di App Engine deve utilizzare il wrapper di stream Cloud Storage
per scrivere file in fase di runtime. Tuttavia, se un'app deve leggere file e questi
sono statici, puoi leggere facoltativamente i file statici caricati con l'app
utilizzando funzioni del file system PHP come file_get_contents
.
Ad esempio:
dove il percorso specificato deve essere un percorso relativo allo script che vi accede.
Quando esegui il deployment dell'app in App Engine, devi caricare il file o i file in una sottodirectory dell'applicazione e devi configurare il file app.yaml
in modo che l'app possa accedere a questi file. Per informazioni dettagliate, vedi
Configurazione dell'applicazione PHP 5 con app.yaml
.
Nella configurazione app.yaml
, tieni presente che se utilizzi un gestore di file o directory statici
(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 vengono gestiti da un gestore script
, non è necessario,
perché questi file sono leggibili dai gestori di script per impostazione predefinita.
Passaggi successivi
Leggi i seguenti argomenti per informazioni dettagliate sull'utilizzo dell'API Cloud Storage Tools:
- Configurazione, istruzioni di configurazione rapida.
- Fornire l'accesso pubblico ai file mostra come consentire agli utenti di scaricare i file tramite browser.
- Consentire agli utenti di caricare file mostra come caricare i file direttamente tramite browser, bypassando l'app.
- Utilizzo dei file immagine mostra i modi migliori per gestire e pubblicare le immagini.
- La gestione avanzata dei file copre quanto segue:
- Opzioni per autorizzazioni, memorizzazione nella cache e stream di metadati.
- Supporto della funzione del file system PHP.
- Utilizzo di PHP
include
erequire
. - Lettura e scrittura di metadati personalizzati.
- Letture dei file memorizzati nella cache.