У мене є 1000 файлів у Google Cloud Storage, щоб зробити їх загальнодоступними, або взагалі ієрархію каталогів.
У веб-інтерфейсі я, здається, лише публікую один за одним.
Чи є якийсь спосіб зробити це.
У мене є 1000 файлів у Google Cloud Storage, щоб зробити їх загальнодоступними, або взагалі ієрархію каталогів.
У веб-інтерфейсі я, здається, лише публікую один за одним.
Чи є якийсь спосіб зробити це.
Відповіді:
Біжи 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
ви визначаєте загальнодоступне читання для всіх об’єктів, які зараз перебувають у вашому сегменті, але при завантаженні нових файлів вони не будуть загальнодоступними за замовчуванням.
Я виявив, що варто визначити аккаунт за замовчуванням у відрі як загальнодоступний gsutil defacl set public-read gs://bucket
gsutil defacl set public-read gs://bucket
працює з усіма майбутніми файлами, включаючи файли в підкаталогах. Ігноруйте коментар Plastly Grove.
Ви можете зробити всі об’єкти у відрі загальнодоступними. Ось посилання .
- Відкрийте браузер Cloud Storage у консолі Google Cloud Platform.
- У списку сегментів натисніть на назву сегмента, який ви хочете опублікувати.
- Виберіть вкладку "Дозволи" вгорі сторінки.
- Натисніть кнопку Додати учасників.
З'явиться діалогове вікно Додати учасників.- У полі Учасники введіть усіх Користувачів.
- У спадному меню Ролі виберіть підменю Зберігання та натисніть опцію Переглядач об’єкта зберігання.
- Натисніть Додати.
Після спільного доступу для кожного об’єкта у стовпці «Загальний доступ»> з’являється піктограма посилання. Ви можете натиснути на цю піктограму, щоб отримати URL-адресу об’єкта.
Поточна (жовтень / 2017) документація про розміщення статичного веб-сайту, що знаходиться тут, вказує на:
gsutil acl ch -r -u AllUsers:R gs://bucket-name
Де -r
робить рекурсивний фокус і -u AllUsers:R
надає загальнодоступний доступ для читання
gsutil acl ch -r -u AllUsers:R gs://bucket-name/dir-name
-m
зробить це після -gsutil -m acl ch -r -u AllUsers:R gs://bucket-name/dir-name
Щоб скопіювати та вставити від імені Еріка, це послідовно працювало для мене:
Зробити групи об’єктів загальнодоступними для читання
Щоб зробити всі об’єкти у відрі загальнодоступними для читання:
CONSOLEGSUTILREST APIS Використовуйте команду gsutil iam ch, замінюючи [VALUES_IN_BRACKETS] на відповідні значення:
gsutil iam ch allUsers:objectViewer gs://[BUCKET_NAME]