Google colaboratory和Google Cloud之间的界面

Sri*_*Rao 4 python google-cloud-storage google-cloud-platform jupyter-notebook google-colaboratory

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

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

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

使用Google驱动器后,我们只需在身份验证后使用以下命令更新路径即可直接定向到特定目录。

import sys
sys.path.append('drive/xyz')
Run Code Online (Sandbox Code Playgroud)

我们也在台式机版本上做类似的事情

import os
os.chdir(local_path)
Run Code Online (Sandbox Code Playgroud)

Google Cloud Storage是否存在类似的东西?

我喜欢FAQ,它有读写单个文件的过程,在这里我们需要设置整个路径。将主目录重新组织成子目录并分别访问它们将很繁琐。

Dan*_*scu 5

通常,尝试将GCS存储桶安装在本地计算机上不是一个好主意(这将使您可以使用它,如前所述)。从 连接到云存储桶

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

假设无论警告如何,您都希望继续操作,如果您使用Linux操作系统,则可以使用Cloud Storage FUSE适配器安装它。请参阅相关的如何在具有完全访问权限的Linux实例上将Google Bucket作为本地磁盘安装

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

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')
Run Code Online (Sandbox Code Playgroud)

更新:

基于Google的PythonGoogle API客户端库,协作文档推荐了我忘记的另一种方法,但是请注意,它也不会像常规文件系统那样运行,它使用的是本地文件系统上的中间文件: