web-dev-qa-db-fra.com

Comment rendre de nombreux fichiers publics dans Google Cloud Storage?

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.

58
engineerchuan

Courir gsutil -m acl set -R -a public-read gs://bucket

  • Le -m émet plusieurs demandes en même temps.
  • Le -R émet des demandes pour chaque objet de votre compartiment.
  • Le -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
89
fejta

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

53
unaiherran

Vous pouvez rendre tous les objets d'un compartiment publics. Voici le lien .

  1. Ouvrez le navigateur Cloud Storage dans la console Google Cloud Platform.
  2. Dans la liste des compartiments, cliquez sur le nom du compartiment que vous souhaitez rendre public.
  3. Sélectionnez l'onglet Autorisations en haut de la page.
  4. Cliquez sur le bouton Ajouter des membres.
    La boîte de dialogue Ajouter des membres apparaît.
  5. Dans le champ Membres, entrez allUsers.
  6. Dans la liste déroulante Rôles, sélectionnez le sous-menu Stockage et cliquez sur l'option Visionneuse d'objets de stockage.
  7. 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.

20
Erik

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.

7
MarcoSantana

La façon la plus simple d'y parvenir serait d'utiliser une console.

Cliquez sur "Modifier les autorisations du compartiment"

enter image description here

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é.

enter image description here

5
Anand Kapdi

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]
1
Darian311