如何使用admin SDK将文件上传到带有路径的Firebase的云存储中?

时间:2018-07-06 09:25:51

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

firebase文档上没有太多内容说明使用Firebase admin sdk进行Google云存储时如何使用路径上传文件。

我查看了firebase's documentation,它指定了我可以创建一个存储分区,应该参考google clouds documentation以获得进一步的帮助。

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

SETLOCAL ENABLEDELAYEDEXPANSION

...

set Services[0]=SERVICE1
set Services[1]=SERVICE2
set Services[2]=SERVICE3

set "i=0"

:ServicesLoop
if defined Services[%i%] (
    set SERVICE=!Services[%i%]!

    echo CurrentService: !SERVICE!

    set /a "i+=1"
    GOTO :ServicesLoop
)

这很有帮助,因为我可以使用admin来上传文件。

// 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);
    });

尽管我仍然对如何指定路径一无所知,因为这只是将其置于Firebase存储桶的顶层。有人知道我该如何指定一个路径来使用api更深入地嵌套文件?

1 个答案:

答案 0 :(得分:2)

请参阅API documentation for the upload() method。您可以看到上载使用另一个名为“选项”的参数来描述上载。 options对象可能具有称为destination的属性,用于描述文件应上传到的位置。

  

(字符串或文件)

     

保存文件的位置。如果提供字符串,则文件将是   使用字符串作为文件名上传到存储桶。当给一个   文件对象,您的本地文件将被上传到文件对象的   存储桶,并以File对象的名称命名。最后,当这个论点是   省略,文件会使用的名称上传到您的存储桶   本地文件或相对于其域的url路径。

因此,您可以像这样使用它:

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