Обслуживание статических файлов из облачного хранилища Google?
Я хотел использовать статические файлы, хранящиеся в облачном хранилище Google, для приложения, размещенного в приложении. В HTML файле я использовал
<link href="#" onclick="location.href='https://storage.cloud.google.com/my_bucket/custom.css'; return false;" rel="stylesheet">
Он работает правильно, если учетная запись google зарегистрированного пользователя имеет разрешение на доступ к ведру.
Поскольку приложение может быть доступно всем, у кого не будет доступа к моему ведру, и в таком случае статические файлы не будут обслуживаться.
Можно ли сделать статические файлы в ведре общедоступными? Я сделал статический файл (custom.css) как "общедоступный" (ACL установлен на "public-read" ), но другие пользователи не могут получить к нему доступ.
Ответы
Ответ 1
Я не уверен, как вы загружаете свои файлы и почему публичное чтение настроено неправильно, но вы также можете изменить это с помощью Google Cloud Storage Менеджер. Просто найдите ведро и файл и нажмите галочку Share Publicly
, и вы получите ссылку.
Или вы можете загрузить этот файл с помощью gsutil с открытым правом:
gsutil cp -a public-read custom.css gs://my_backet
Ответ 2
Помимо ручного изменения каждого из статических файлов через Google Cloud Storage Manager, вы также можете настроить общедоступный просмотр вашего сегмента с помощью gsutil:
Используйте acl для установки публичного чтения на текущих объектах корзины
gsutil -m acl set -R -a public-read gs://BUCKET_NAME
Используйте defacl для установки по умолчанию для будущих загрузок:
gsutil -m defacl set public-read gs://BUCKET_NAME
Флажок "общий доступ" будет автоматически проверяться для всех загружаемых файлов.
Чтобы получить доступ к корзине, убедитесь, что вы ввели авторизованный идентификатор или адрес электронной почты для групп и пользователей и домен для разрешения корзины, в противном случае вы получите сообщение об ошибке, например:
'DefAclCommand' object has no attribute 'continue_on_error'