Firebase Admin SDK 用于下载/检索 Google Cloud Storage 上的文件

sha*_*ime 4 javascript google-cloud-storage firebase reactjs firebase-admin

我正在尝试下载一些已上传到 Google Cloud Storage(也称为存储桶)的图像。我无法在我的任何const storage或上使用 .ref() 方法const bucket,因为它们是管理 SDK 的一部分。admin.storage 只有方法 .bucket() ( https://firebase.google.com/docs/reference/admin/node/admin.storage.Storage )。

\n\n

我能够访问存储桶。\nbucket.getFiles() 有效,结果是一个包含大量元数据(如文件名、存储桶所有者等)的文件对象数组。如何从云存储中获取图像并将其插入到 html 对象中?

\n\n

\r\n
\r\n
var admin = require("firebase-admin");\r\n\r\nvar serviceAccount = require("./randomDB-f12d3-admin-correctly-working.json");\r\n\r\nadmin.initializeApp({\r\n  credential: admin.credential.cert(serviceAccount),\r\n  databaseURL: "https://randomDB-f12d3.firebaseio.com",\r\n  storageBucket: "randomDB-f12d3.appspot.com"\r\n});\r\n\r\nconst gcs  = require("@google-cloud/storage");\r\ngcs.projectId = "randomDB-f12d3";\r\ngcs.keyFilename = "randomDB-f12d3-firebase-admin-correctly-working.json";\xef\xbb\xbf\r\n\r\nexports.getFile = functions.https.onRequest((req, res) => {\r\n  \r\n  cors(req, res, () => {\r\n    if (req.method !== "GET") {\r\n      return res.status(500).json({\r\n        message: "Not allowed"\r\n      });\r\n    }\r\n\r\n    const storage = admin.storage();\r\n    const bucket = admin.storage().bucket();\r\n\r\n    bucket.getFiles().then((result)=>{\r\n      \r\n      console.log(result);\r\n      res.send(result);\r\n    });\r\n\r\n  });\r\n\r\n});
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

Dou*_*son 8

Cloud Storage Admin SDK 只是@google-cloud/storage 模块的包装器。当您调用 时admin.storage(),您返回的是该库中的Storage对象。使用,您将获得项目的admin.storage().bucket()默认存储桶。从那里,您应该file()创建对该存储桶中文件的引用并根据需要下载它们。

  • “根据需要下载”部分是这个答案的不足之处。你应该详细说明,因为这是问题的核心部分。 (4认同)