【问题标题】:Google Cloud Storage ignoring delimiter谷歌云存储忽略分隔符
【发布时间】:2017-06-23 00:25:26
【问题描述】:

我正在尝试从谷歌云存储中检索 JSON 文件。 JSON 文件与其对应的音频文件存储在同一文件夹中,如下所示:

bucket
  folder1
    audio.wav
    audio.json
  folder2
    audio.wav
    audio.json

我用的是nodejs,调用云存储如下:

bucket.getFiles({
    delimeter: 'audio' //should be preventing loading of audio files but it isnt
  }).then((data) => {
    console.log(data)
  }).catch((error) => {
    console.log(error)
  })

我感觉这可能与 Google 处理文件夹的方式有关,但我不太确定。首先是文件的存储方式:

const storage = require('@google-cloud/storage')();

  const filename = `recordings/${path.parse(req.body.RecordingUrl).name}/audio.wav`;
  const file = storage
    .bucket(config.RESULTS_BUCKET)
    .file(filename)

这会导致某种字符串为音频文件分配一个唯一 ID 作为文件夹名称,然后附加 /audio.wav,云存储会以某种方式将其识别为文件夹。只是一个猜测,但不知道如果是这种情况如何解决。有谁知道我可能做错了什么?

【问题讨论】:

    标签: javascript node.js google-cloud-platform google-cloud-storage


    【解决方案1】:

    如果您尝试列出所有以.json 结尾的对象,那么您根本不想设置分隔符。分隔符用于分层列表。除了 unset 和 / 之外,您几乎从不想将其设置为任何值。请参阅list 文档。

    【讨论】:

    • 那么如何从结果集中排除audio.wav文件?
    • 没有办法做到这一点。您必须在客户端进行过滤。
    猜你喜欢
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    • 2015-06-04
    • 2016-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多