Не удалось загрузить файл Google Cloud Storage из обучающего приложения в Cloud ML Engine.

Я пытаюсь загрузить файл из облачного хранилища из своего обучающего приложения, которое работает в движке Cloud ML. Однако я получаю следующую ошибку, когда пытаюсь загрузить файл. У меня есть доступ к пути к облачному хранилищу.

Ошибка:

blob.download_to_filename(destination_file_name) File "/root/.local/lib/python2.7/site-packages/google/cloud/storage/blob.py", line 482, in download_to_filename self.download_to_file(file_obj, client=client) File "/root/.local/lib/python2.7/site-packages/google/cloud/storage/blob.py", line 464, in download_to_file self._do_download(transport, file_obj, download_url, headers) File "/root/.local/lib/python2.7/site-packages/google/cloud/storage/blob.py", line 418, in _do_download download.consume(transport) File "/root/.local/lib/python2.7/site-packages/google/resumable_media/requests/download.py", line 101, in consume self._write_to_stream(result) File "/root/.local/lib/python2.7/site-packages/google/resumable_media/requests/download.py", line 62, in _write_to_stream with response: AttributeError: __exit__

Вот код для загрузки файла GCS:

  storage_client = storage.Client()
  bucket = storage_client.get_bucket(bucket_name)
  blob = bucket.blob(key)
  blob.download_to_filename(destination_file_name)

Я не предоставляю никаких учетных данных GCP для Client, так как работающее приложение для обучения может получить доступ к другим файлам, используя

tf.train.string_input_producer

Любая помощь будет оценена по достоинству.


person Fayaz Ahmed    schedule 10.08.2017    source источник


Ответы (1)


Приложение для обучения обращается к другим файлам через file_io< TensorFlow. /а> модуль. В этом сообщении есть несколько советов, но если вы хотите открыть файл:

with file_io.FileIO("gs://my_bucket/myfile") as f:
  f.read()

Также есть функция copy(..) и read_file_to_string(...), если они вам больше подходят.

person rhaertel80    schedule 10.08.2017
comment
Спасибо. Это было очень полезно. Не уверен, почему это не работает так, как я пытался. - person Fayaz Ahmed; 10.08.2017