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

问题描述 投票:3回答:1

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

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

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

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

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

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

import os
os.chdir(local_path)

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

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

python google-cloud-platform google-cloud-storage jupyter-notebook google-colaboratory
1个回答
4
投票

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

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

假设您想要继续而不管警告,如果您使用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')

更新:

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

© www.soinside.com 2019 - 2024. All rights reserved.