У меня есть 1000 файлов в облачном хранилище Google, чтобы опубликовать их или, в общем, иерархию каталогов.
В пользовательском интерфейсе Интернета я могу только представить, что каждый из них является общедоступным.
Есть ли способ сделать это.
У меня есть 1000 файлов в облачном хранилище Google, чтобы опубликовать их или, в общем, иерархию каталогов.
В пользовательском интерфейсе Интернета я могу только представить, что каждый из них является общедоступным.
Есть ли способ сделать это.
Выполнить gsutil -m acl set -R -a public-read gs://bucket
-m
выдает несколько запросов одновременно.-R
выдает запросы для каждого объекта в вашем ковше.-a
выдает запросы для каждой версии каждого объекта.Подробнее см. gsutil help acl
.
На уровне API gsutil выдается следующий запрос HTTP:
PUT /bucket/obj?acl HTTP/1.1
Host: storage.googleapis.com
x-goog-acl: public-read
Вы можете увидеть это, используя флаг -D
с gsutil
:
gsutil -D setacl public-read gs://bucket/obj
При запуске: gsutil -m acl set -R -a public-read gs://bucket
вы определяете общедоступное чтение для всех объектов, находящихся в вашем ведре, но при загрузке новых файлов они не будут общедоступны по умолчанию.
То, что я нашел, - это то, что стоит определить acc по умолчанию для acc как public-read gsutil defacl set public-read gs://bucket
Вы можете сделать все объекты в ведре общедоступными. Здесь ссылка .
Текущая (октябрь/2017) документация о размещении статического веб-сайта найдена здесь указывает на:
gsutil acl ch -r -u AllUsers:R gs://bucket-name
Где -r
рекурсивный трюк и -u AllUsers:R
дает доступ к общедоступному доступу.
Чтобы скопировать и вставить имя Erik, это работало последовательно для меня:
Создание групп объектов, общедоступных для чтения
Сделать все объекты в ведре общедоступными:
CONSOLEGSUTILREST APIS Используйте команду gsutil iam ch, заменяя [VALUES_IN_BRACKETS] с соответствующими значениями:
gsutil iam ch allUsers:objectViewer gs://[BUCKET_NAME]