Данные присутствуют в ведре. Но звонки API говорит, что файл не присутствует. Одна важная вещь, которую я заметил, - то, что путь объекта GCS, построенный ловушкой, кажется, имеет двойную косую черту, когда это решает.
[2018-11-01 11:55:47,836] {discovery.py:267} INFO - URL being requested: GET https://www.googleapis.com/discovery/v1/apis/storage/v1/rest
[2018-11-01 11:55:49,422] {discovery.py:866} INFO - URL being requested: GET https://www.googleapis.com/storage/v1/b/dev/o/%2Fdaily_exports%2F20181030%2Fdata.gz?alt=media
Traceback (most recent call last):
File "/home/user/airflow/dags/custom/es_operator.py", line 51, in execute
hook.download(self.bucket,self.object,self.local_path)
File "/home/user/airflow/venv/lib/python3.6/site-packages/airflow/contrib/hooks/gcs_hook.py", line 162, in download
.get_media(bucket=bucket, object=object) \
File "/home/user/airflow/venv/lib/python3.6/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper
return wrapped(*args, **kwargs)
File "/home/user/airflow/venv/lib/python3.6/site-packages/googleapiclient/http.py", line 842, in execute
raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 404 when requesting https://www.googleapis.com/storage/v1/b/lotlinx-dev/o/%2Fdaily_exports%2F20181030%2Fdata.gz?alt=media returned "Not Found">
During handling of the above exception, another exception occurred:
Итак, когда я нажимаю на ссылку, которая была построена API, это выглядит так
Anonymous caller does not have storage.objects.get access to dev//daily_exports/20181030/data.gz.
Двойная косая черта генерируется хуком, и я не контролирую ее. Любая помощь приветствуется