- Да, это так. Открытые читабельные ведра созданы для этого.Такие вещи, как CSS, логотип вашей компании или некоторые файлы, которые не содержат разумных данных, могут быть безопасны для совместного использования.
Конечно, не используйте одно и то же хранилище Public для хранениячастный / публичный материал.Public with Public, Private with Private.
Вот проблема.Когда вы говорите «аутентифицированный пользователь», для которого вы хотите, чтобы этот пользователь проходил аутентификацию?
Например, если вы аутентифицируете своего пользователя с помощью любых методов Django , то пользовательбудет аутентифицирован в Django, но для Cloud Storage это будет незнакомец.Кроме того, даже пользователь, авторизованный в GCP, не может быть авторизован в сегменте облачного хранилища.
Здесь важно то, что тот, кто обменивается данными с облачным хранилищем и обратно, - это не пользователь, а его Django.Этого можно добиться, используя python SDK облачного хранилища , которое принимает учетные данные учетной записи службы , которая используется в экземпляре для проверки подлинности любого запроса в облачное хранилище.Итак, учетная запись службы , на которой запущена виртуальная машина (поскольку вы находитесь в Flexible), должна быть авторизована для облачного хранилища.
Сначала необходимо авторизовать пользователя в Django, а затем проверить, может ли пользователь получить доступ к этому файлу другими способами (например, сохранить имя загруженного им файла в таблице user_uploaded_files).
Что касается вашего первого вопроса в верхней части поста, Cloud Storage позволяет создавать подписанных URL-адресов .Эти URL-адреса позволяют любому пользователю Интернета загружать / скачивать файлы из облачного хранилища, просто удерживая URL-адрес.Так что вам нужно только авторизовать пользователя на Django, чтобы получить подписанный URL, и все.Он не должен быть «авторизован» в облачном хранилище (поскольку URL-адрес уже делает это)
Взято из документов, на которые ссылались ранее:
Когда следует использовать подписанный URL-адрес?
В некоторых случаях вам может не потребоваться, чтобы у ваших пользователей была учетная запись Google для доступа к облачному хранилищу, но вы все равно хотите контролировать доступ с помощью логики, специфичной для приложения.Типичным способом решения этого варианта использования является предоставление пользователю подписанного URL-адреса, который дает пользователю возможность чтения, записи или удаления доступа к этому ресурсу в течение ограниченного времени.Любой, кто знает URL, может получить доступ к ресурсу до истечения срока действия URL.Вы указываете срок действия в строке запроса для подписи.