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.
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.
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/
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.
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.
Its actually formulated more like:
https://<bucket-name>.s3.amazonaws.com/<key>
See here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With