L'immagine viene caricata nello spazio di archiviazione di Firebase utilizzando PHP ma è necessario creare manualmente il token di accesso per renderlo visibile
Sto usando PHP per caricare l'immagine nell'archivio Firebase. l'immagine è in fase di caricamento ma non è accessibile in quanto devo creare manualmente un "token di accesso" per renderlo accessibile. ecco il codice che sto usando
$bucketName = "example.appspot.com"; $objectName = 'Photos/test.jpeg';
$storage = new StorageClient(); $bucket = $storage->bucket($bucketName);
$object = $bucket->upload(fopen('sign.jpeg', 'r'),
[
'name' => $objectName
]
);
Risposte
Funziona davvero come previsto: poiché il caricamento non avviene tramite un SDK Firebase, non esiste un metodo per generare un URL di download.
La soluzione alternativa comune è creare un URL firmato con una scadenza molto lontana nel futuro, che è l'equivalente più vicino che Cloud Storage ha all'URL di download di Firebase.
Oltre a @Frank s' risposta , si potrebbe anche assegnare l' publicRead
ACL per il file caricato e comporre l'URL pubblico manualmente:
$bucketName = "example.appspot.com"; $objectName = 'Photos/test.jpeg';
$storage = new StorageClient(); $bucket = $storage->bucket($bucketName);
$object = $bucket->upload(fopen('sign.jpeg', 'r'), [
'name' => $objectName 'predefinedAcl' => 'publicRead' ]); $publicUrl = "https://{$bucket->name()}.storage.googleapis.com/{$object->name()}";
Ho creato un modo indiretto per generare e memorizzare il token di accesso.
$payload = file_get_contents('https://firebasestorage.googleapis.com/v0/b/example.appspot.com/o/Photos%2Fpic.jpeg'); $data = json_decode($payload); echo $data->downloadTokens;
Questo codice ha creato il token di accesso e mostra il downloadToken sullo schermo.
Grazie a tutti per le vostre risposte.