来自colab的GCS Python访问

时间:2019-05-14 07:13:28

标签: google-cloud-storage google-colaboratory

我正在尝试使用以下代码行从Colab访问GCS并得到给定的错误。我想念什么吗?还是Colab不支持这种GCS访问?我可以使用任何解决方法或最佳做法吗?

from google.cloud import storage

client = storage.Client()
bucket = client.get_bucket('busnet_videos')
blob = bucket.blob('my-test-file.txt')
blob.upload_from_string('this is test content!')

错误:

    ---------------------------------------------------------------------------

OSError                                   Traceback (most recent call last)

<ipython-input-7-0ed440d78c8f> in <module>()
      7 from google.cloud import storage
      8 
----> 9 client = storage.Client()
     10 bucket = client.get_bucket('busnet_videos')
     11 blob = bucket.blob('my-test-file.txt')

2 frames

/usr/local/lib/python3.6/dist-packages/google/cloud/storage/client.py in __init__(self, project, credentials, _http)
     71             project = None
     72         super(Client, self).__init__(
---> 73             project=project, credentials=credentials, _http=_http
     74         )
     75         if no_project:

/usr/local/lib/python3.6/dist-packages/google/cloud/client.py in __init__(self, project, credentials, _http)
    221 
    222     def __init__(self, project=None, credentials=None, _http=None):
--> 223         _ClientProjectMixin.__init__(self, project=project)
    224         Client.__init__(self, credentials=credentials, _http=_http)

/usr/local/lib/python3.6/dist-packages/google/cloud/client.py in __init__(self, project)
    176         if project is None:
    177             raise EnvironmentError(
--> 178                 "Project was not passed and could not be "
    179                 "determined from the environment."
    180             )

OSError: Project was not passed and could not be determined from the environment.

1 个答案:

答案 0 :(得分:0)

您可能必须设置一个环境变量:

GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_KEY.json

PROJECT_ID=YOUR_GOOGLE_CLOUD_PROJECT_ID