Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to format a URL to get a file from Amazon S3?

Tags:

amazon-s3

get

I am having some trouble figuring out how to access a file from Amazon S3. Lets say that the bucket that the file lives in is BUCKET_NAME, the file is FILE_NAME, etc. I have tried the following two URLs:

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

But this gives me the following error:

<Code>NoSuchKey</Code> <Message>The specified key does not exist.</Message> 

I have also tried:

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

but this returns a webpage with a list of all of the files in the given bucket (including FILE_NAME), instead of the specific file I want. I have also tried throwing in Action=GetObject into the URL as well but that doesn't seem to change anything.

It would be helpful to find out which (if any) is the proper method and what I am doing wrong. I have been digging through Amazon's documentation for a while now but I can't seem to sort it out.

like image 977
user1018928 Avatar asked Oct 28 '11 18:10

user1018928


People also ask

How do I create a URL for Amazon S3?

To generate a presigned URL using the AWS Management ConsoleSign in to the AWS Management Console and open the Amazon S3 console at https://console.aws.amazon.com/s3/ . In the Buckets list, choose the name of the bucket that contains the object that you want a presigned URL for.

Which of the URL formats can be used for accessing S3 objects?

An S3 bucket can be accessed through its URL. The URL format of a bucket is either of two options: http://s3.amazonaws.com/[bucket_name]/ http://[bucket_name].s3.amazonaws.com/

How do I extract files from AWS S3?

If you head to the Properties tab of your S3 bucket, you can set up an Event Notification for all object “create” events (or just PutObject events). As the destination, you can select the Lambda function where you will write your code to unzip and gzip files.

How do I get my S3 upload URL?

You can get the resource URL either by calling getResourceUrl or getUrl . AmazonS3Client s3Client = (AmazonS3Client)AmazonS3ClientBuilder. defaultClient(); s3Client. putObject(new PutObjectRequest("your-bucket", "some-path/some-key.


1 Answers

Its actually formulated more like:

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

See here

like image 71
stevebot Avatar answered Oct 04 '22 06:10

stevebot