像目录一样写入Google Cloud存储桶吗?

问题描述

我编写了一个python脚本,用于重新采样并重命名大量音频数据,并将其移至磁盘上的新位置。我想使用此脚本将要重采样的数据移至Google存储桶。

问题:是否可以通过某种方式将GCP VM实例连接/挂载到存储桶,使得该存储桶只是另一个目录就可以进行读写操作?

例如,这是我脚本中的某个地方:

# load audio from old location
audio,_ = librosa.load(old_path):

# Do some stuff to the audio
# ...

# write audio to new location
with sf.soundFile(new_path,'w',sr,channels=1,format='WAV') as f:
      f.write(audio)

我想要一种将path放入存储桶的方法,因为我的脚本采用了old_path原始数据所在的位置,对其进行重新采样并将其移至new_path

我的脚本修改起来并不像上面的代码片段所示的那么简单,因为我正在做很多多重处理。另外,我想使脚本通用,以便可以将其重新用于本地文件等。基本上,更改脚本不在桌面上。

解决方法

您可以使用FUSE适配器将GCS存储桶安装到本地文件系统上

https://cloud.google.com/storage/docs/gcs-fuse

对于Linux:

sudo apt-get update
sudo apt-get install gcsfuse
gcsfuse mybucket /my/path

或者,您可以使用适用于Python的GCS客户端直接上传您的内容:

https://cloud.google.com/storage/docs/reference/libraries#client-libraries-usage-python

,

是的,您可以使用Cloud Storage FUSE.更多信息和一些示例here

要使用gcsfuse在现有目录/ path / to / mount上安装存储桶,请像这样调用它:

gcsfuse my-bucket /path/to/mount

我建议您使用一个gcsfuse专门访问的存储桶,以简化操作。

重要节点:gcsfuse 它按原样分发,没有任何形式的保证。