J'ai 1000 fichiers dans Google Cloud Storage à rendre publics, ou en général une hiérarchie de répertoires.
Dans l'interface utilisateur Web, je ne peux que rendre public un par un.
Y a-t-il un moyen de le faire.
Courir gsutil -m acl set -R -a public-read gs://bucket
-m
émet plusieurs demandes en même temps.-R
émet des demandes pour chaque objet de votre compartiment.-a
émet des demandes pour chaque version de chaque objet.Voir gsutil help acl
pour plus d'informations.
Au niveau de la couche API gsutil émet la requête HTTP suivante:
PUT /bucket/obj?acl HTTP/1.1
Host: storage.googleapis.com
x-goog-acl: public-read
Vous pouvez le voir en utilisant le -D
drapeau avec gsutil
:
gsutil -D setacl public-read gs://bucket/obj
Lorsque vous exécutez: gsutil -m acl set -R -a public-read gs://bucket
vous définissez la lecture publique pour tous les objets actuellement dans votre compartiment, mais lorsque vous téléchargez de nouveaux fichiers, ils ne seront pas publics par défaut.
Ce que j'ai trouvé, c'est que cela vaut la peine de définir un bucket par défaut acl comme public-read gsutil defacl set public-read gs://bucket
Vous pouvez rendre tous les objets d'un compartiment publics. Voici le lien .
- Ouvrez le navigateur Cloud Storage dans la console Google Cloud Platform.
- Dans la liste des compartiments, cliquez sur le nom du compartiment que vous souhaitez rendre public.
- Sélectionnez l'onglet Autorisations en haut de la page.
- Cliquez sur le bouton Ajouter des membres.
La boîte de dialogue Ajouter des membres apparaît.- Dans le champ Membres, entrez allUsers.
- Dans la liste déroulante Rôles, sélectionnez le sous-menu Stockage et cliquez sur l'option Visionneuse d'objets de stockage.
- Cliquez sur Ajouter.
Une fois partagé publiquement, une icône de lien apparaît pour chaque objet dans la colonne Accès public>. Vous pouvez cliquer sur cette icône pour obtenir l'URL de l'objet.
La documentation actuelle (octobre/2017) sur l'hébergement d'un site Web statique trouvée ici pointe vers:
gsutil acl ch -r -u AllUsers:R gs://bucket-name
Où le -r
fait le tour récursif et -u AllUsers:R
donne au public un accès en lecture.
La façon la plus simple d'y parvenir serait d'utiliser une console.
Cliquez sur "Modifier les autorisations du compartiment"
Entrez allUsers
dans Ajouter des membres. Alors Select Role
> Storage
> Storage Object Viewer
Attention! Cela donnera une autorisation de lecture à toutes les personnes sur Internet pour tous les objets de ce compartiment sélectionné.
Pour copier et coller au nom d'Erik, cela a toujours fonctionné pour moi:
Rendre les groupes d'objets lisibles publiquement
Pour rendre tous les objets d'un compartiment lisibles publiquement:
CONSOLEGSUTILREST APIS Utilisez la commande gsutil iam ch, en remplaçant [VALUES_IN_BRACKETS] par les valeurs appropriées:
gsutil iam ch allUsers:objectViewer gs://[BUCKET_NAME]