L'immagine viene caricata nello spazio di archiviazione di Firebase utilizzando PHP ma è necessario creare manualmente il token di accesso per renderlo visibile

Aug 23 2020

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

2 FrankvanPuffelen Aug 23 2020 at 14:37

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.

jeromegamez Aug 23 2020 at 14:48

Oltre a @Frank s' risposta , si potrebbe anche assegnare l' publicReadACL 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()}";
AbhishekSoni Aug 24 2020 at 01:40

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.