J'ai téléchargé des fichiers via la gestion Amazon AWS.
J'ai eu une erreur 403. Accès refusé. J'ai découvert que je devais régler la permisson pour voir.
Comment faire cela pour tous les fichiers du seau? Je sais que c'est une autorisation de paramétrage possible pour chaque fichier. Il faut beaucoup de temps pour avoir vraiment beaucoup de fichiers qui doivent être visibles pour tout le monde.
Je suggère que vous appliquiez une politique de seau1 dans le compartiment où vous souhaitez stocker du contenu public. De cette façon, vous n'avez pas à définir ACL pour chaque objet. Voici un exemple de stratégie qui rendra tous les fichiers du compartiment mybucket publics.
{
"Version": "2008-10-17",
"Id": "http better policy",
"Statement": [
{
"Sid": "readonly policy",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*"
}
]
}
Ce *
dans "Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*"
autorise la récursivité.
1 Notez qu'une stratégie de compartiment est différente d'une stratégie IAM. (Par exemple, vous obtiendrez une erreur si vous essayez d'inclure Principal
dans une stratégie IAM.) La stratégie de compartiment peut être modifiée en allant à la racine du compartiment dans votre console Web AWS et en développant Propriétés> Autorisations. Les sous-répertoires d'un compartiment ont également Propriétés> Autorisations, mais il n'y a pas d'option pour Edit bucket policy
J'ai utilisé Cloudberry Explorer pour faire le travail :) C'est-à-dire: http://cloudberrylab.com/free-Amazon-s3-Explorer-cloudfront-IAM.aspx
Vous pouvez sélectionner le répertoire que vous souhaitez rendre public.
Appuyez sur "plus" et marquez-le comme public; cela rendra le répertoire et tous les fichiers accessibles au public.
Vous ne pouvez modifier les ACL que pour un élément unique (seau ou élément), mais vous devrez les modifier un par un.
Certaines applications de gestion S3 vous permettent d’appliquer la même liste de contrôle d’accès à tous les éléments d’un compartiment, mais en interne, elles appliquent la liste de contrôle d’accès à chaque élément.
Si vous téléchargez vos fichiers par programme, il est important de spécifier la liste de contrôle d'accès lorsque vous téléchargez le fichier, afin de ne pas avoir à le modifier ultérieurement. Le problème de l’utilisation d’une application de gestion S3 (telle que Cloudberry, Transmit, ...) est que la plupart d’entre elles utilisent la liste de contrôle d’accès par défaut (lecture seule uniquement) lorsque vous téléchargez chaque fichier.
J'ai eu le même problème lors du téléchargement des fichiers via le programme (Java) vers le compartiment s3.
Erreur: aucun en-tête 'Access-Control-Allow-Origin' n'est présent sur la ressource demandée . Origin ' http: // localhost: 9000 ' n'est donc pas autorisé à accéder. La réponse avait le code d'état HTTP 403
J'ai ajouté l'identité origine et modifié la stratégie bucket et la configuration CORS, puis tout a bien fonctionné.
Vous pouvez définir ACL sur chaque fichier en utilisant aws cli:
BUCKET_NAME=example
BUCKET_DIR=media
NEW_ACL=public-read
aws s3 ls $BUCKET_NAME/$BUCKET_DIR/ | \
awk '{$1=$2=$3=""; print $0}' | \
xargs -t -I _ \
aws s3api put-object-acl --acl $NEW_ACL --bucket $BUCKET_NAME --key "$BUCKET_DIR/_"
Pour rendre un grand nombre de fichiers publics, procédez comme suit:
Utilisation de Navigateur S3 vous pouvez mettre à jour les autorisations à l'aide de l'interface graphique, également de manière récursive. C'est un outil utile et gratuit pour une utilisation non commerciale.
Utilisez Générateur de stratégies AWS pour générer une stratégie adaptée à vos besoins. Le principal du générateur de règles doit être l'utilisateur/le rôle IAM que vous utiliseriez pour accéder au (x) objet (s) . L'ARN de la ressource doit être arn: aws: s3 ::: mybucket/sub/dirs/are /. prise en charge/*
Ensuite, cliquez sur "Ajouter une déclaration" et suivez-le. Vous obtiendrez finalement un JSON représentant la stratégie. Collez-le dans la section de gestion de la stratégie de votre s3, qui se trouve dans "la page de votre s3 dans AWS -> autorisations -> stratégie du seau".
Je voulais ajouter ceci ici aux utilisateurs potentiels de macOS qui disposent déjà de l'application FTP magnifiquement conçue appelée Transmit by Panic.
J'ai déjà eu Panic et il prend en charge les compartiments S3 (je ne sais pas quelle version cela a été fourni mais je pense que les mises à niveau étaient gratuites). Il prend également en charge la mise à jour récursive des autorisations de lecture et d’écriture.
Il vous suffit de cliquer avec le bouton droit sur le répertoire que vous souhaitez mettre à jour et de sélectionner les autorisations de lecture et d'écriture pour lesquelles vous souhaitez les définir.
Cela ne semble pas très rapide, mais vous pouvez ouvrir le fichier journal en allant dans Fenêtre> Transcription pour au moins savoir que cela fait quelque chose.