web-dev-qa-db-fra.com

Url pour obtenir un fichier d'Amazon S3

Je ne parviens pas à comprendre comment accéder à un fichier à partir d'Amazon S3. Disons que le compartiment dans lequel se trouve le fichier est BUCKET_NAME, que le fichier est FILE_NAME, etc.

https://s3.amazonaws.com/BUCKET_NAME/FILE_NAME/
?Expires=EXPIRATION
&Signature=SIGNATURE
&SignatureVersion=2
&SignatureMethod=HmacSHA1
&AWSAccessKeyId=KEYID

Mais cela me donne l'erreur suivante: NoSuchKey La clé spécifiée n'existe pas.

et j'ai aussi essayé

https://s3.amazonaws.com/BUCKET_NAME/
?Key=FILE_NAME
&Expires=EXPIRATION
&Signature=SIGNATURE
&SignatureVersion=2
&SignatureMethod=HmacSHA1
&AWSAccessKeyId=KEYID

mais cela renvoie une page Web contenant la liste de tous les fichiers du compartiment donné (y compris FILE_NAME), au lieu du fichier spécifique que je souhaite. J'ai également essayé de jeter "Action = GetObject" dans l'URL, mais cela ne semble rien changer. 

Il serait utile de savoir quelle est (le cas échéant) la bonne méthode et ce que je fais mal. Cela fait un moment que je fouille dans la documentation Amazon, mais je n'arrive pas à résoudre le problème.

Merci.

35
user1018928

En fait, sa formule ressemble plus à:

https://<bucket-name>.s3.amazonaws.com/<key>

Voir ici

50
stevebot

Documentation ici , et je vais utiliser la région de Francfort comme exemple.

2 styles d'URL différents:

Mais cette URL ne fonctionne pas:

Le message est explicite: The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.

Je parle peut-être d’un autre problème car je n’obtiens pas l’erreur NoSuchKey mais j’imagine que le message d’erreur a été clarifié au fil du temps ...

19
Sebastien Lorber

Peut-être pas ce que recherchait l'OP, mais pour ceux qui recherchent l'URL d'accéder simplement à un objet lisible sur S3, cela ressemble plus à:

https://<region>.amazonaws.com/<bucket-name>/<key>

<region> est quelque chose comme s3-ap-southeast-2.

Cliquez sur l'élément dans l'interface graphique S3 pour obtenir le lien vers votre compartiment.

19
orlade

Comme @stevebot l'a dit, faites ceci:

https://<bucket-name>.s3.amazonaws.com/<key>

La chose importante que je voudrais ajouter est que vous devez rendre vos objets de compartiment accessibles au public OR, vous pouvez ajouter une stratégie personnalisée à votre stratégie de compartiment. Cette stratégie personnalisée pourrait autoriser le trafic provenant de votre plage IP réseau ou d'une autre information d'identification.

0
Chad Van De Hey