谷歌云存储忽略分隔符

问题描述:

我试图从谷歌云存储中检索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,不知何故云存储认识到这是一个文件夹。只是一个猜测,但不知道如果是这样的话如何解决。任何人都知道我可能会做错什么?

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

+0

如何从结果集中排除audio.wav文件? – mheavers

+1

没有办法做到这一点。你必须在客户端进行过滤。 – jterrace