3

Google Cloud Storageに保存されているファイルのURLを取得するために、次のFirebase Cloud機能があります。Google Cloud Storage(Firebase Cloud機能付き)から短いファイルURLを取得

const gcs = require('@google-cloud/storage')({keyFilename: 'service-account.json'}); 

exports.generateFileLink = functions.storage.object().onChange(event => { 
    const object = event.data; 
    const filePath = object.name; 
    const bucket = gcs.bucket(object.bucket); 
    const file = bucket.file(filePath); 
    const action = 'read'; 
    const expires = '03-09-2491'; 
    return file.getSignedUrl({action, expires}).then(signedUrls => { 
    console.log(signedUrls[0]) 
    }); 
}) 

これは、正しいURLを返しますが、それは600文字以上の長さです。 Firebase Webコンソールに表示される同じファイルのURLは200文字未満です。 firebase-adminまたはfirebase-functionsモジュールを使って短いURLを取得する方法はありますか?

答えて

3

私たちはfirebase-adminストレージクライアントで作業しているとの簡単な答えですが、それでも少し離れています。今のところ、関数にダウンロードURLを作成する必要がある場合は、署名されたURLを使用します。

Firebaseが提供するダウンロードURLを使用して、関数vsで署名付きURLを生成する必要があるのはなぜですか?それはあなたが関数内のクライアントを介してURLを取得することはできませんし、あなたは別の場所に移動する必要がありますか?

+0

Firebaseモジュールを使用してファイルのダウンロードURLを取得する方法が見つかりませんでした。署名されたURLは必要ありません。[ダウンロードURL](https://firebase.google.com/docs/reference/ios/firebasestorage/api/reference/Classes/FIRStorageReference#/c:objc(cs) FIRStorageReference(im)downloadURLWithCompletion :)をクラウド関数内に作成します。 –

+0

申し訳ありません、自分自身を修正させてください。私は署名されたURLが必要です。 FirebaseのダウンロードURLにはトークン属性(約36文字)がありますが、Google Cloud Storageには署名(200文字以上)があります。私は小さいサイズのダウンロードURLを探しています –

+0

@ SalilThakur残念ながら、標準のGCSクライアントからFirebaseのダウンロードURLをサポートしていません。前述のように、私たちはこれを解決するために努力していますが、今は長いものを使用するか、 'gs://' URIを格納し、クライアントに実際のダウンロードURLを取得させる必要があります。別のオプションは、完全に署名されたURLに展開するリンク短縮子(bit.lyなど)を調べることです –

関連する問題