Ich habe die folgende Firebase Cloud-Funktion, um die URL der in Google Cloud Storage gespeicherten Datei abzurufen.Erhalten Sie eine kürzere Datei-URL von Google Cloud Storage (mit Firebase Cloud-Funktionen)
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])
});
})
Dies gibt die richtige URL zurück, aber es ist über 600 Zeichen lang. Die URL für die gleiche Datei wie in der Firebase-Webkonsole ist weniger als 200 Zeichen lang. Gibt es eine Möglichkeit, die URL mit Firebase-Admin oder Firebase-Funktionen Module abrufen, um die kürzere URL zu erhalten?
Ich konnte keine Methoden zum Abrufen von Download-URLs von Dateien mit einem der Firebase-Module finden. Ich brauche keine signierte URL, nur eine [URL herunterladen] (https://firebase.google.com/docs/reference/ios/firebasestorage/api/reference/Classes/FIRStorageReference#/c:objc (cs) FIRStorageReference (im) downloadURLWithCompletion :) innerhalb einer Cloud-Funktion. –
Entschuldigung, lass mich mich korrigieren. Ich möchte eine signierte URL. Die Firebase-Download-URL enthält ein Token-Attribut (ca. 36 Zeichen), während der Google Cloud Storage eine Signatur (über 200 Zeichen) besitzt. Ich suche nach einer Download-URL mit einer kleineren Größe –
@SalilThakur Leider unterstützen wir die Firebase-Download-URLs noch nicht über die Standard-GCS-Clients. Wie bereits erwähnt, arbeiten wir daran, dies zu lösen, aber jetzt müssen Sie die langen verwenden oder einen 'gs: //' URI speichern und die Clients eine tatsächliche Download-URL erhalten lassen. Eine andere Möglichkeit besteht darin, einen Linkverkürzer (wie bit.ly) zu untersuchen, um die volle signierte URL zu erhalten. –