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

已挂载GCS存储桶无法在Vertex AI Jupyter Notebook中访问的解决方法

问题:Vertex AI Notebook中无法访问已挂载的GCS存储桶

我通过以下命令在Vertex AI Notebook的终端中挂载了GCS存储桶:

MY_BUCKET=cloud-ai-platform-a013866a-a18a-470f-9d35-f485abb17e82

cd ~/

mkdir -p gcs

gcsfuse --implicit-dirs --rename-dir-limit=100 --disable-http2 --max-conns-per-host=100 $MY_BUCKET "/home/jupyter/gcs"

终端执行ls gcs/能看到存储桶内的目录:test uncorrupted_split_heightmaps,但在Jupyter Notebook中无法访问这些内容:

  • 运行以下代码:
    import os
    print(os.listdir('../gcs'))
    
    输出为空列表[],而非预期的['test', 'uncorrupted_split_heightmaps']
  • 用ImageDataGenerator读取数据时:
    from tensorflow.keras.preprocessing.image import ImageDataGenerator
    idg = ImageDataGenerator()
    heightmap_iterator = idg.flow_from_directory('../gcs/test', 
                                                 target_size = (256, 256), 
                                                 batch_size = 8,
                                                 color_mode = 'grayscale',
                                                 classes = [''])
    
    输出Found 0 images belonging to 1 classes.,而非预期的Found 732458 images belonging to 1 classes.
解决方法
  • 检查并使用绝对路径
    Notebook的工作目录可能和终端的~/(即/home/jupyter/)不一致,先在Notebook中确认当前工作目录:

    import os
    print(os.getcwd())
    

    直接使用绝对路径访问挂载目录,避免相对路径的问题:

    print(os.listdir('/home/jupyter/gcs'))
    
  • 调整gcsfuse挂载权限
    终端挂载时的权限可能限制了Jupyter进程访问,重新挂载时添加--allow-other参数:

    # 先卸载已挂载目录
    fusermount -u /home/jupyter/gcs
    # 重新挂载并开放权限
    gcsfuse --implicit-dirs --rename-dir-limit=100 --disable-http2 --max-conns-per-host=100 --allow-other $MY_BUCKET "/home/jupyter/gcs"
    
  • 重启Jupyter内核
    挂载操作是在终端执行的,Jupyter内核可能未感知到新挂载的目录,重启Notebook内核后再尝试访问。

  • 使用Vertex AI原生GCS访问方式
    若gcsfuse挂载问题持续,可直接通过API访问存储桶,无需挂载:

    • TensorFlow直接读取GS路径:
      from tensorflow.keras.preprocessing.image import ImageDataGenerator
      idg = ImageDataGenerator()
      heightmap_iterator = idg.flow_from_directory('gs://cloud-ai-platform-a013866a-a18a-470f-9d35-f485abb17e82/test', 
                                                   target_size = (256, 256), 
                                                   batch_size = 8,
                                                   color_mode = 'grayscale',
                                                   classes = [''])
      
    • GCS SDK访问:
      from google.cloud import storage
      client = storage.Client()
      bucket = client.get_bucket('cloud-ai-platform-a013866a-a18a-470f-9d35-f485abb17e82')
      # 列出test目录下的文件
      blobs = bucket.list_blobs(prefix='test/')
      for blob in blobs:
          print(blob.name)
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:00:49