#google-api #google-cloud-storage #google-api-python-client
#google-api #google-облачное хранилище #google-api-python-client
Вопрос:
У меня есть простое веб-приложение на Python, которое создает проект Google Cloud от имени пользователя. Затем он создает хранилище и, наконец, загружает файл CSV в хранилище через JSON API.
Моя проблема в том, что после завершения задания пользователь не может получить доступ к файлу CSV или даже загрузить свои собственные файлы в хранилище. Корзина.
Я думаю, что мне нужно установить разрешения IAM, но, читая документацию, я не могу понять, как это сделать.
Комментарии:
1. Можете ли вы описать, может ли пользователь получить доступ только к своему файлу или ко всему файлу? Есть ли у пользователя учетная запись Google? Наконец, регистрируете ли вы (например, в базе данных) файл, загруженный пользователем?
Ответ №1:
Чтобы иметь возможность читать определенный файл, вы можете установить роль на уровне объекта с помощью вызова ObjectAccessControls insert
API:
POST https://storage.googleapis.com/storage/v1/b/__bucket__/o/__object__/acl
Замена __bucket__
на имя корзины и __object__
на имя файла. И отправить свойства тела следующего запроса:
entity user-email@email.com
role READER
Если вы хотите разрешить пользователю перезаписывать файл, измените role
свойство на OWNER
.
Если вы хотите разрешить пользователю загружать совершенно другой файл в свою корзину, вам нужно будет установить role
значение WRITER
на уровне корзины с помощью вызова BucketAccessControls insert
API, однако это может быть нежелательно, поскольку это позволит предоставить пользователю следующие разрешения:
Читатели могут получить корзину, хотя свойство acl не будет возвращено, и перечислить объекты корзины. Авторы — это читатели, и они могут вставлять объекты в корзину и удалять объекты корзины.