首页 文章

谷歌colaboratory和谷歌 Cloud 之间的接口

提问于
浏览
1

从google colaboratory,如果我想读/写到谷歌 Cloud 中创建的给定存储桶中的文件夹,我该如何实现?

我创建了一个存储桶,存储桶中的一个文件夹,并将一堆图像上传到其中 . 现在来自colaboratory,使用jupyter笔记本,想要创建多个子目录,将这些图像组织成火车,验证和测试文件夹 .

随后访问相应的文件夹以进行培训,验证和测试模型 .

使用Google驱动器,我们只需在身份验证后使用以下命令更新指向特定目录的路径 .

import sys
sys.path.append('drive/xyz')

我们在桌面版上做了类似的事情

import os
os.chdir(local_path)

Google Cloud 端存储是否存在类似情况?

我是colaboratory常见问题解答,它有读写单个文件的程序,我们需要设置整个路径 . 将主目录重新组织到子目录并单独访问它们将是繁琐的 .

1 回答

  • 3

    一般来说,尝试在本地计算机上安装GCS存储桶并不是一个好主意(这将允许您按照您的提及使用它) . 从Connecting to Cloud Storage buckets

    注意: Cloud 存储是一种对象存储系统,与POSIX文件系统没有相同的写约束 . 如果您同时从多个源向 Cloud 存储中的文件写入数据,则可能会无意中覆盖关键数据 .

    假设您想要继续而不管警告,如果您使用Linux操作系统,您可以使用Cloud Storage FUSE适配器安装它 . 见相关How to mount Google Bucket as local disk on Linux instance with full access rights .

    从python应用程序访问GCS的推荐方法是使用Cloud Storage Client Libraries,但访问文件将与您的代码段不同 . 您可以在Python Client for Google Cloud Storage找到一些示例:

    from google.cloud import storage
    client = storage.Client()
    # https://console.cloud.google.com/storage/browser/[bucket-id]/
    bucket = client.get_bucket('bucket-id-here')
    # Then do other things...
    blob = bucket.get_blob('remote/path/to/file.txt')
    print(blob.download_as_string())
    blob.upload_from_string('New contents!')
    blob2 = bucket.blob('remote/path/storage.txt')
    blob2.upload_from_filename(filename='/local/path.txt')
    

    Update:

    Colaboratory文档根据Google API Client Library for Python推荐了另一种我忘记的方法,但请注意,它也没有使用本地文件系统上的中间文件:

相关问题