FR: Support direct lookup of Storage objects by `metadata.id`
I maintainer di solito rispondono entro 7 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- google-cloud, node.js, typescript
Direzione di ricerca
Inizia con la classe Bucket dell’Admin SDK e traccia il modo in cui crea i riferimenti ai file; confronta questo percorso con il client sottostante @google-cloud/storage menzionato nell’issue. Definisci come supportare una ricerca di metadata.id, quindi verifica che l’oggetto restituito supporti getMetadata(), download() e getSignedUrl(), come bucket.file(path).
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Title:
FR: Support direct lookup of Storage objects by metadata.id
Is your feature request related to a problem? Please describe.
Currently in the Admin SDK there is no way to fetch a file reference directly by its internal metadata.id. Users must call bucket.getFiles() (optionally with a prefix) and then iterate through every file’s metadata until they find a match. This approach is painfully inefficient for buckets with hundreds or thousands of objects, and leads to high latency and extra egress charges just to resolve a single file by its ID.
Describe the solution you’d like
Add a first-class API—e.g.
const file = await bucket.fileById('ABCD1234-xyz');
under the Admin SDK’s Bucket class (and optionally in the underlying @google-cloud/storage client). Internally it could leverage a server-side lookup or index rather than requiring a full listing scan. The returned object should behave identically to bucket.file(path) so you can immediately call getMetadata(), download(), or getSignedUrl().
Describe alternatives you’ve considered
-
Client-side scan:
const [files] = await bucket.getFiles(); for (const f of files) { const [m] = await f.getMetadata(); if (m.id === targetId) return f; }
Works, but requires listing every object + extra round-trips.
- Storing custom metadata: You could save your own “id” in
metadata.customand index it in Firestore, but that duplicates what the server already knows, and still needs a separate database lookup.
Additional context
- This feature is especially important for multi-tenant or large-scale apps where buckets routinely hit thousands of files.
- Without it, reverse-lookup patterns become a maintenance burden and performance bottleneck.
- Screenshot of current workaround and templates attached.
- Lingua principale
- TypeScript
- Stelle
- 1.8k
- Fork
- 420
- Merge medio
- 5g 6h
- PR unite (30g)
- 11
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di firebase/firebase-admin-node
-
Password policy violation is reported as `auth/internal-error` instead of a specific error codeAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
firebase/firebase-admin-node#3265 ·
I maintainer di solito rispondono entro 7 giorni
-
getToken() replays a failed token refresh to later callers while a valid token is cachedForse già presa @GUMBOKIM l’ha presa 51 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
firebase/firebase-admin-node#3234 ·
I maintainer di solito rispondono entro 7 giorni
-
[email protected] stable dependency tree fails npm audit via Storage uuid and Firestore google-gaxForse già presa @lahirumaramba l’ha presa 26 giorni fa. Aperta
firebase/firebase-admin-node#3221 · 3 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 7 giorni
-
Misleading error message for THIRD_PARTY_AUTH_ERROR: raw "OAuth 2 access token" text surfaced instead of the APNs-specific messageForse già presa @milcho0604 l’ha presa 53 giorni fa. Apertaapi: messaging
Difficoltà 3/5 1-2 giorni Idoneità per principianti 70/100
firebase/firebase-admin-node#3215 ·
I maintainer di solito rispondono entro 7 giorni
-
api: messaging
Difficoltà 5/5 Più di una settimana Idoneità per principianti 28/100
firebase/firebase-admin-node#3214 ·
I maintainer di solito rispondono entro 7 giorni
Tutte le issue di firebase/firebase-admin-node
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno