我正在提交一个ML Engine培训工作,该工作将调用我的一些Python代码。我想从Google云端存储中下载我的特定文件,以便在我的代码中使用。
做到这一点的最佳方法是什么?我可以想到一些选择:
,想到使用唯一的选择python的subprocess
运行gsutil cp gs://project/my_file
。但是,我不知道ML Engine实例是否默认设置了gsutil
。他们吗?
有没有下载存储在GCS编程文件更简单的方法?我已经通过了文档看了,但没有看到这个用例解决。
谢谢!
答案 0 :(得分:0)
在您的培训师程序中,您可以使用TensorFlow从GCS直接读取文件:
from tensorflow.python.lib.io import file_io
with file_io.FileIO('gs://bucket/file.csv', 'r') as f:
...
当然,您可以立即读写:
from tensorflow.python.lib.io import file_io
with file_io.FileIO('gs://bucket/file.csv', 'r') as infile:
with file_io.FileIO('/tmp/file.csv', 'w') as outfile:
outfile.write(infile.read())
第二个最佳选择是使用Python客户端库(确保将google-cloud-storage指定为依赖项):
import google.cloud.storage as gcs
bucket = gcs.Client().get_bucket('bucketname')
blob = bucket.blob('/some/file.csv')
dest = '/tmp/file.csv'
blob.download_to_filename(dest)