Я новичок в облачных службах Google и пытаюсь настроить автоматическую сборку своего производства, требующую загрузки тяжелого файла.
Я хочу загрузить файл из выделенного хранилища Google Storage внутрипроцесс сборки Docker.Для этого я добавил следующую строку в свой Dockerfile
:
RUN curl https://storage.cloud.google.com/[bucketname]/[filename] -o [filename]
Поскольку файлы из этого сегмента не должны быть общедоступными, я отключил разрешение на уровне объектов и добавил в член [ProjectID]@cloudbuild.gserviceaccount.com
право Storage Object Viewer
.
Но при запуске сценария файла Docker загруженный файл становится пустым
Step 7/9 : RUN curl https://storage.cloud.google.com/[bucketname]/[filename] -o [filename]
---> Running in 5d1a5a1bbe87
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
Removing intermediate container 5d1a5a1bbe87
---> 42938a9cc8d1
Step 8/9 : RUN ls -l [filename]
---> Running in 34ac112051a1
-rw-r--r-- 1 root root 0 Jun 15 00:37 [filename]
Эта ссылка прекрасно работает, если я войду в google.console и получу к нему доступ черезмой навигатор.
Я попытался изменить настройки разрешений и в итоге добавил cloud build account
, storage legacy bucket reader
, storage legacy object reader
, storage object viewer
без особого успеха.
Я, очевидно, делаючто-то не так.Но мне не ясно, если:
- Этот формат ссылки действителен только в консоли, и я должен использовать другой URL-адрес, чтобы получить этот файл
- Неправильная конфигурация разрешения
- Мне еще нужно обработать http-авторизацию через curl
- Я пропускаю что-то еще.
Спасибо за вашу помощь:)