J'essaie d'autoriser l'accès en lecture anonyme (ou uniquement à partir de mon domaine d'applications) aux fichiers de mon compartiment.
En essayant de lire les fichiers, je reçois
`` `
<Error>
<Code>AccessDenied</Code>
<Message>Access denied.</Message>
<Details>
Anonymous users does not have storage.objects.get access to object.
</Details>
</Error>
`` `
J'ai également essayé d'ajouter un domaine avec la boîte de dialogue des autorisations par défaut des objets dans la console Google Cloud. cela me donne l'erreur "Une de vos autorisations n'est pas valide. Assurez-vous de saisir un identifiant ou un email autorisé pour les groupes et les utilisateurs, ainsi qu'un domaine pour les domaines"
J'ai également envisagé de créer la liste de contrôle d'accès pour le compartiment public-read
. Mon seul problème avec cela est que cela supprime ma propriété sur le seau. J'ai besoin de cette propriété car je veux autoriser le téléchargement à partir d'un identifiant Google Access spécifique.
Vous pouvez utiliser gsutil pour rendre les nouveaux objets créés dans le compartiment lisibles publiquement sans supprimer votre propriété. Pour rendre les nouveaux objets créés dans le compartiment lisibles pour le public:
gsutil defacl ch -u AllUsers:R gs://yourbucket
Si vous avez des objets existants dans le compartiment que vous souhaitez rendre lisibles pour le public, vous pouvez exécuter:
gsutil acl ch -u AllUsers:R gs://yourbucket/**
Vous pouvez également le faire depuis la console.
https://console.cloud.google.com/storage/
Choisissez modifier les autorisations du compartiment:
Entrez "allUsers" dans l'option Add Members et "Storage Object Viewer" en tant que rôle. Cliquez ensuite sur "Sélectionner un rôle" et définissez "Stockage" et "Ancien objet de stockage" sur "Vue de l'objet de stockage".
À l'aide de rôles IAM, pour rendre les fichiers lisibles et bloquer la liste:
gsutil iam ch allUsers:legacyObjectReader gs://bucket-name
Pour rendre les fichiers lisibles et autoriser l’énumération:
gsutil iam ch allUsers:objectViewer gs://bucket-name
Ajoutez une permission pour tous les utilisateurs.
Une fois partagé publiquement, une icône de lien apparaît dans la colonne d'accès public. Vous pouvez cliquer sur cette icône pour obtenir l'URL de l'objet.
Instruction sur Rendre les données publiques à partir de Google Cloud Docs
Si vous téléchargez des fichiers dans fonctions de la base de fe, vous devrez appeler makePublic()
sur l'objet de référence afin de le rendre accessible sans passer de jeton.