【问题标题】:How can I upload files to firebase's cloud storage with a path using the admin sdk?如何使用 admin sdk 将文件上传到具有路径的 firebase 的云存储?
【发布时间】:2018-07-07 00:46:38
【问题描述】:

firebase 文档中没有太多说明如何在使用 firebase admin sdk 进行谷歌云存储时上传带有路径的文件。

我查看了firebase's documentation,它指定我可以创建一个存储桶,我应该参考google clouds documentation 以获得更多帮助。

然后他们还展示了如何创建另一个存储桶以及指向API Reference Documentation 的链接,这再次向您展示了如何创建另一个存储桶,但至少这次有一个代码示例表可供参考。表中的files 链接显示了一个具有

// Uploads a local file to the bucket
  storage
    .bucket(bucketName)
    .upload(filename)
    .then(() => {
      console.log(`${filename} uploaded to ${bucketName}.`);
    })
    .catch(err => {
      console.error('ERROR:', err);
    });

这很有帮助,因为我可以通过管理员上传文件。

var admin = require("firebase-admin");
var serviceAccount = require("path/to/serviceAccountKey.json");
admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    storageBucket: "<BUCKET_NAME>.appspot.com"
});
const bucket = admin.storage().bucket();
bucket.upload('local/file/path').then(data => {
    console.log('upload success');
}).catch(err => {
    console.log('error uploading to storage', err);
});

虽然我仍然不知道如何指定路径,因为这只是将它放在我的 Firebase 存储桶的顶层。任何人都知道我可以如何指定一个路径来使用 api 更深地嵌套我的文件?

【问题讨论】:

    标签: javascript firebase google-cloud-storage firebase-storage


    【解决方案1】:

    请参考API documentation for the upload() method。您可以看到上传使用名为“选项”的第二个参数来描述上传。 options 对象可能有一个名为destination 的属性来描述文件应该上传到哪里。

    (字符串或文件)

    保存文件的地方。如果给定一个字符串,文件将是 使用字符串作为文件名上传到存储桶。当给出一个 File 对象,您的本地文件将被上传到 File 对象的 存储桶和文件对象的名称下。最后,当这个论点是 省略,文件将使用名称上传到您的存储桶 本地文件或 url 相对于其域的路径。

    所以,你可以这样使用它:

    bucket.upload('local/file/path', { destination: 'location/in/bucket' })
    

    【讨论】:

    • 我想将 JSON 保存为文件。如何创建该文件然后上传它? fs.writeFileSync() 不工作,因为它是只读的。错误:EROFS:只读文件系统,打开“mynewfile3.txt”
    猜你喜欢
    • 2019-08-02
    • 2020-05-09
    • 1970-01-01
    • 2021-07-30
    • 2020-11-21
    • 2020-05-07
    • 2016-11-05
    • 1970-01-01
    • 2017-12-21
    相关资源
    最近更新 更多