Postman: Read a csv file placed in aws using Postman? - amazon-web-services

How can I read a csv file placed in aws using Postman ?
I am able to get list of files and folders places in aws using
aws url:
https://s3.amazonaws.com/partnertrackingconfigurationdev/?list-type=2
access key, secret key and session token.
But, I would like to read the csv file placed at below url using Postman.
aws url:
https://s3.amazonaws.com/partnertrackingconfigurationdev/?list-type=2&Key=QAInputData/CarrierTrackingNumbers.csv
Please help

On s3 in AWS you can explicite configure folder/file permissions. Is this here what you are looking for?
https://docs.aws.amazon.com/workdocs/latest/userguide/web_share_link.html
https://docs.aws.amazon.com/workdocs/latest/userguide/permissions.html#doc_perms
EDIT
I am also a little bit confused, that in your URL that after the 'RequestParams' (?list-type=2&....) you use again a 'Path' (/CarrierTrackingNumbers.csv).
Should it not be:
https://s3.amazonaws.com/partnertrackingconfigurationdev/CarrierTrackingNumbers.csv?list-type=2&Key=QAInputData

Related

How to access the S3 folder using CloudFront signed cookie?

I want to build an HLS streaming server using Signed Cookie.
The video file is video/test.m3u8 on the S3 bucket.
If s3ObjectKey is set to vides/* as in the picture, the file is not downloaded. Access Denied comes out.
If s3ObjectKey is set to vidos/test.m3u8, the file is downloaded.
I want to access all the files in the 'video' folder.
If it's not vidoes/*, I want to know how to set up to access all files.
There is no signed cookie example on ps. aws docunet.
It seems like you're using CookiesForCannedPolicy in AWS SDK for Java. Since canned policy doesn't support reusing the same policy statement for multiple files, I'll suggest that you can look into CookiesForCustomPolicy which allows you to put * in the resource prop and give the permission to access all files in a directory.
For more details on custom policy, you can refer to this developer guide

AWS Upload file to S3 REST API - Missing required header for this request: x-amz-content-sha256

Unfortunately i cannot use AWS SDK and i must use REST API AWS services(i am working with Flutter WEB).
So i start to do research on aws docs and this is what i did:
Create bucket.
make all permission to be public(for test only)
open access point
Then at the postman i am using at "Auth" aws signature and added current keys,
except session token(my bucket is open and i understood that i dont need it, if i am mistaking pls correct me).
when i am sending the request i am getting an error:
Missing required header for this request: x-amz-content-sha256
Here is attachment images:
AWS Signautre
Body Request
Error message
Just ran into this issue too - the Service Name must be 's3' vs 'S3'.
advanced authorization settings
According to the AWS documentation, you need to send the x-amz-content-sha256 header in the request:
The x-amz-content-sha256 header is required for all AWS Signature Version 4 requests. It provides a hash of the request payload. If there is no payload, you must provide the hash of an empty string.
Seems like Postman is not adding it for some reason. You should check the Headers and add manually then.
try replacing S3 with s3 for the service name.
I too faced this issue and after adding session token parameter it got resolved. Postman has the provision to generate the below parameters,
X-Amz-Content-Sha256
Authorization
x-amz-security-token
X-Amz-Date

S3 Signature Mismatch on URL with VersionId

I am curious why I am getting a SignatureDoesNotMatch error on a Versioned URL for an object in my S3 bucket (by appending versionId=abdcd).
When the URL has the following pattern:
https://s3.amazonaws.com/bucket/object.tar.gz
everything seems to work fine. However as soon as I add the versionId query string, I get the signature mismatch error
https://s3.amazonaws.com/bucket/object.tar.gz?versionId=abcde
The method for accessing the object is controlled by CloudFormation::Init's source property, as describe here
S3 Bucket
The following example downloads a zip file from an Amazon S3 bucket
and unpacks it into /etc/myapp:
Note You can use authentication credentials for a source. However, you
cannot put an authentication key in the sources block. Instead,
include a buckets key in your S3AccessCreds block. For an example, see
the example template. For more information on Amazon S3 authentication
credentials, see AWS::CloudFormation::Authentication. JSON
"sources" : { "/etc/myapp" :
"https://s3.amazonaws.com/mybucket/myapp.tar.gz" }
This is not a permissions issue because it works fine when there's no versionId query string. I am curious why the signing method is failing by just adding that? And how can I fix it?
I read up AWS's Signature V4 but I don't see anything that explains why this is not working? It seems that query strings are only supposed to be used for auth headers?

How to retrieve amazon s3 temporary credentials?

I've got a Django Rest API and a React Native app. I'd like to upload some files to my s3 bucket from my app.
I could do this :
User would like to upload an image --> GET my_api/s3/credentials/
App --> POST image directly to s3 using credentials (access/private keys)
The problem is that once the user has the accessKey and privateKey, he can use it indefinitely.
Is there a way to retrieve temporary credentials I could give to the user after a call on my_api/s3/credentials/ ?
I've found an answer. It is possible to generate from server side a temporary URL to POST your content.
details here

AWS S3 Content Metadata is not set in response

In particular, the problem is with image and "Content-Type: image/png".
I tried to upload image of .png type using different approaches:
"upload" using Admin Console for S3 with default upload options;
"upload" using Admin Console for S3 with explicit setting of content
type in meta data details;
using https://github.com/pkgcloud library
All three save content with proper metadata, as displayed:
.
However, if you try to access it via S3 http link, "Content-Type" is not set.
There is a workaround, which does not seem to work always though: open Admin Console for S3 and press "Save".
Does it look like an issue with S3 metadata, or should something additional be done to make Metadata be properly added to response?
p.s. cross-posted here as well: https://forums.aws.amazon.com/thread.jspa?threadID=195391&tstart=0