You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Cloud Storage中API与拖拽创建文件夹的元数据获取异常问题

GCS拖拽创建文件夹获取元数据报错解决方法

问题原因

GCS是对象存储,不存在真实的文件夹结构:

  • 通过API创建的“文件夹”,本质是以/结尾的零字节占位对象,调用getMetadata()时能找到对应对象,所以可正常返回元数据。
  • 拖拽上传创建的“文件夹”,GCS不会生成这个零字节占位对象,只是将文件路径中包含该文件夹前缀,直接用带/的路径调用file().getMetadata()时,因无对应对象存在,就会报错No such object: bucket_name/path1/path2/Cloud-Register/path3/Test 1/。

解决办法

  • 用前缀查询替代元数据获取:如果仅需确认文件夹是否存在或获取其下文件,直接通过前缀查询即可,无需依赖占位对象:
    const [files, nextQuery, prefixes] = await bucketInstance.getFiles({
      prefix: 'path1/path2/Cloud-Register/path3/Test 1/',
      delimiter: '/'
    });
    // 若prefixes数组包含该文件夹路径,说明存在对应前缀
    
  • 手动创建占位对象:如果必须获取类似文件夹的元数据,可手动生成零字节占位对象,之后就能正常调用getMetadata():
    const folderPath = 'path1/path2/Cloud-Register/path3/Test 1/';
    const folderFile = bucketInstance.file(folderPath);
    // 保存空内容创建占位对象
    await folderFile.save('', {
      contentType: 'application/x-www-form-urlencoded;charset=UTF-8'
    });
    // 现在可正常获取元数据
    const metaData = await folderFile.getMetadata();
    

内容的提问来源于stack exchange,提问作者Ankitsingh Bisht

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 16:02:39