Вам необходимо создать пользовательскую роль со следующими разрешениями:
resourcemanager.projects.get
resourcemanager.projects.list
storage.objects.create
storage.objects.delete
Имейте в виду, что разрешение storage.objects.create
дает вам возможность добавлять новые объекты в ведро, но и возможность скачать объект, который вы создали. Согласно моему тестированию, с этой пользовательской ролью вы не сможете загружать созданные вами файлы. Если вы попытаетесь, вы получите следующее сообщение об ошибке:
403 service account does not have storage.objects.list permission
Я не думаю, что вы можете запретить клиенту загружать созданный им объект.
Что касается части условие , вы можете создать условия для загрузки (resource.name.endsWith(".jpg"
), но я не думаю, что вы создаете условия для загрузки.