web-dev-qa-db-fra.com

Amazon S3 Access image par url

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

18
SiberianGuy

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

25
akotian

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.

5
Zohaib Ejaz

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. 

5
Raja Rao

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

3
Erikas Pliauksta

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.

3
Warren Sergent

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);
1
Omar Faroque Anik

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/ " }] }

0

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. 

0
Derekdunes