

Laravelで以下のライブラリを使い、  
Firebaseのstorageにファイルがアップできることは確認しました。

<https://github.com/kreait/laravel-firebase>

公式ドキュメント  
<https://firebase-php.readthedocs.io/en/stable/cloud-storage.html>  
（このサイト、全然参考にならなくないですか？）

コードはこのような形です。

[code]

    storage = app('firebase.storage');
    $bucket = $storage->getBucket();
    $object = $bucket->upload(
        fopen(public_path().'/storage/thumbnail/'.$file->hashName(), 'r')
    );
    
[/code]

firebaseのstorageをコンソールから確認すると、アップしたファイルは存在するのですが、  
開こうとすると、読み込み状態になり画像自体を確認することはできません。

１．ファイルはアップされているのに、見ることができない、  
公開URLも生成されていないのはなにかアップする際にオプションの指定や、  
Firebase側でパーミッションなどの設定が必要なのでしょうか？

２．もし公開状態でアップできたら、公開URLを取得するにはどうしたらよいでしょうか？

公式ドキュメントや、ソースを確認したのですが行き詰まってしまったため、アドバイスいただけると助かります。  
よろしくお願いいたします。


CC BY-SA 4.0
2020-03-21T15:29:25.807
64017
2022-12-14T18:00:45.133
14234
question
php laravel firebase google-cloud-storage
FirebaseのstorageにPHP(Laravel)でファイルをアップし、その公開URLを取得する方法


自己解決しました。

以下のサンプルのコードを参考にしました。  
<https://github.com/jeromegamez/firebase-php-examples>

[code]

    $storage = app('firebase.storage');
    $bucket = $storage->getBucket();
    $object = $bucket->upload(
        fopen(public_path().'/storage/thumbnail/'.$file->hashName(), 'r'),
        [
      'predefinedAcl' => 'publicRead'
        ]
    );
    $downloadUrl = "https://storage.googleapis.com/".$bucket->name().'/'.$object->name();
    
[/code]

オプションを追加し、アップロード。  
ダウンロードURLも取得できました。

ただし、Firebaseのコンソールで、アップされた画像を見ようとすると読み込み表示になり表示されません。  
この部分はバグなのかなぁ。。


CC BY-SA 4.0
2020-03-22T01:56:35.620
64019
2020-03-22T01:56:35.620
14234
64017
answer