PHPを使用してFirebaseストレージにアップロードされている画像ですが、表示するにはアクセストークンを手動で作成する必要があります
Aug 23 2020
PHPを使用して画像をFirebaseストレージにアップロードしています。写真はアップロードされていますが、アクセス可能にするために「アクセストークン」を手動で作成する必要があるため、アクセスできません。これが私が使用しているコードです
$bucketName = "example.appspot.com"; $objectName = 'Photos/test.jpeg';
$storage = new StorageClient(); $bucket = $storage->bucket($bucketName);
$object = $bucket->upload(fopen('sign.jpeg', 'r'),
[
'name' => $objectName
]
);
回答
2 FrankvanPuffelen Aug 23 2020 at 14:37
これは実際に期待どおりに機能しています。アップロードはFirebaseSDKを経由しないため、ダウンロードURLを生成する方法はありません。
一般的な回避策は、有効期限がはるかに長い署名付きURLを作成することです。これは、CloudStorageがFirebaseのダウンロードURLに最も近いものです。
jeromegamez Aug 23 2020 at 14:48
@Frankの回答に加えてpublicRead
、アップロードされたファイルにACLを割り当てて、パブリックURLを手動で作成することもできます。
$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
アクセストークンを生成して保存するための間接的な方法を作成しました。
$payload = file_get_contents('https://firebasestorage.googleapis.com/v0/b/example.appspot.com/o/Photos%2Fpic.jpeg'); $data = json_decode($payload); echo $data->downloadTokens;
このコードはアクセストークンを作成し、downloadTokenを画面に表示します。
みなさん、ありがとうございました。