J'ai téléchargé une image sur le stockage Amazon S3. Mais comment puis-je accéder à cette image par URL? J'ai rendu le dossier et le fichier publics, mais j'obtiens toujours l'erreur AccessDenied si vous essayez d'y accéder par l'url https://s3.amazonaws.com/bucket/path/image.png
C'est une question plus ancienne, mais pour quiconque la rencontrant, une fois que j'ai rendu le fichier public, j'ai pu accéder à mon image en tant que https://mybucket.s3.amazonaws.com/myfolder/afile.jpg
Vous pouvez accéder à votre image en utilisant:
https://s3.amazonaws.com/bucketname/foldername/imagename.jpg
ou s'il n'y a pas de dossiers, vous pouvez faire:
https://s3.amazonaws.com/bucketname/imagename.jpg
upvote si aide. Il est conforme à l'actuel AWS du 30 mai 2017.
On dirait que vous pouvez maintenant simplement cliquer avec le bouton droit sur n’importe quel dossier dans un compartiment et sélectionner «Rendre public» pour rendre tout le contenu de ce dossier public. Cela peut ne pas fonctionner au niveau du godet lui-même.
assurez-vous d’accéder à l’image en utilisant la même casse que lorsqu’elle a été chargée et stockée sur S3 . Par exemple, si vous avez importé nom_image.JPG, vous devez utiliser le même nom mais pas le nom_image. jpg
Je suis tombé sur cette question tout en cherchant une solution à un problème similaire, à savoir l'impossibilité d'accéder aux images.
Il s'avère que les images avec un %
dans leur nom de fichier doivent, lors de l'accès, avoir l'URL du symbole %
codée en %25
.
i.e. photo%20of%20a%20banana%20-%2019%20june%202016.jpg
doit être accessible via photo%2520of%2520a%2520banana%2520-%252019%2520june%25202016.jpg
.
Cependant, le codage d’URL du chemin complet ne fonctionnait pas pour nous, car les barres obliques, etc. seraient codées et le chemin ne fonctionnerait pas. Dans notre cas spécifique, remplacer simplement %
par %25
dans tous les chemins d'accès a fait la différence.
J'avais le même problème. J'ai le problème de l'espacement dans l'URL de l'image. J'ai fait ça pour que ça marche:
String imgUrl=prizes.get(position).getImagePreview().replaceAll("\\s","%20");
passe maintenant cette url à picasso:
Picasso.with(mContext)
.load(imgUrl)
.into(mImageView);
L'un des moyens les plus simples consiste à définir une politique de compartiment.
{ "Version": "2012-10-17", "Déclaration": [{ "Sid": "MakeItPublic", "Effet": "Autoriser", "Principal": " ", "Action": "s3: GetObject", "Ressource": "arn: aws: s3 ::: yourbucketname.com/ " }] }
Sur votre console, cliquez avec le bouton droit sur l'image à laquelle vous souhaitez accéder et cliquez sur "Rendre public"; Quand c'est fait, cliquez à nouveau sur l'image, cliquez sur "Propriétés" et copiez le lien à partir de la vue étendue.