Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • 00:05
    github-actions[bot] unlabeled #3369
  • 00:05
    github-actions[bot] labeled #3366
  • 00:05
    github-actions[bot] commented #3366
  • 00:05
    github-actions[bot] labeled #3102
  • 00:05
    github-actions[bot] commented #3102
  • Jul 29 21:40
    benw25 commented #2229
  • Jul 29 21:11
    iannisacksson opened #3843
  • Jul 29 21:11
    iannisacksson labeled #3843
  • Jul 29 21:11
    iannisacksson labeled #3843
  • Jul 29 18:20

    aws-sdk-js-automation on v2.957.0


  • Jul 29 18:20

    aws-sdk-js-automation on master

    Updates SDK to v2.957.0 (compare)

  • Jul 29 05:48
    plumdog commented #3369
  • Jul 29 00:05
    github-actions[bot] labeled #3369
  • Jul 29 00:05
    github-actions[bot] commented #3369
  • Jul 28 18:19

    aws-sdk-js-automation on v2.956.0


  • Jul 28 18:19

    aws-sdk-js-automation on master

    Updates SDK to v2.956.0 (compare)

  • Jul 28 11:01
    nilesuan commented #2833
  • Jul 28 10:54
    eledoranda commented #2833
  • Jul 28 02:13
    JoseRolles edited #3842
  • Jul 28 02:13
    JoseRolles opened #3842
Randy H
most likely a scammer who is trying to get into your account-even if not, i would avoid giving the pin unless you are in a support session (as in you initiate it)
Ronique Ricketts
I didn’t send the pin
Hi, I am trying to access a PNG file from S3 using a presigned URL but I am consistently getting access denied. PDF files work as expected. Anybody has faced this issue? I am generating the pre-signed URL via AWS lambda for an S3 event. Thee are other issues also like when the pdf file is downloaded, it is downloading as response.pdf rather than the actual name which is in the URL. I cannot also download PDF files with multiple white spaces although I am able to do so with single space by replacing the filename with .repalce("+", " "). I am sure this will not work with other file types or special characters as well in the file name. First priority is to make the other file types like PNG work. Then work with multiple spaces in filename . Function to generate the presigned URL is as below ( Removed the API URL)

const AWS = require('aws-sdk');
var querystring = require('querystring');
var https = require('https');

//var fs = require('fs');

// if you are using an eu region, you will have to set the signature
// version to v4 by passing this into the S3 constructor -
// {signatureVersion: 'v4' }
var s3 = new AWS.S3({signatureVersion: 'v4'});

exports.handler = function (event, context,callback) {

const bucket = event.Records[0].s3.bucket.name;
const key = event.Records[0].s3.object.key. replace("+", " ");
console.log( "File Name" + key. replace("+", " "));

if (!bucket) {
console.log('bucket not set:');
context.done(new Error(S3 bucket not set));

if (!key) {
console.log('key missing:');
context.done(new Error('S3 object key missing'));

const params = {
'Bucket': bucket,
'Key': key,
Expires: 60 * 5

//ACL: 'public-read'


var url = s3.getSignedUrl('getObject', params);
url.replace(/+/g, '%2B');
console.log('The URL is', url);
ResponseContentDisposition: "attachment;filename=key";

//POST to external URL

var post_data = querystring.stringify(
url //TODO here we can get data fro cognito and then instead of obj need to set post_data into call


       //TODO need to get data fom cognito
      var obj = {



var post_options = {
//host: 'dummy.restapiexample.com',
//path: '/api/v1/create',
method: 'POST',


// Set up the request
var post_req = https.request(post_options, function(res) {
res.on('data', function (chunk) {
console.log('Response: ' + chunk);
res.on('error', function (e) {
console.log("Got error: " + e.message);
context.done(null, 'FAILURE');


// post the data
post_req.write(JSON.stringify(obj));//TODO post_data


can you please reformat your code ?
JPG files are working now . Would be great if someone can help with multiple spaces file names as well as downloading the file with actual name rather than just "response.pdf"
you can use a regex instead of a simple string :
.repalce(/\+/g, " ")
@BertrandMarechal Thanks that works ! The other issue is with the file name download, it downloads as response.jpg / pdf and not the actual filename
where do you download from ? is the S3 key correct ?
yeah, I mean, the file on s3 is not called response.jpg or pdf ?
Nope, it has a specific filename
so that's your download code then
I upload a file in S3, an event is fired and then a lambda function generated a pre signed URL for the document and posts to an external document management API. I built this API with backend dynamodb and AWS API gateway. I then copy the URL from the DB and then fire a postman GET request which fetches the file from S3 . The URL is valid for 5 mins after which it expires
The issue is with the file name which gets replaced with response everytime
if you paste this url in the browser, what is the file downloaded as ?
it seems to be a postman thing :)
If I post the file in browser, it is rendered on page
ok. but yeah, it's a postman thing. if you had a Frontend, you would choose your file name
I added the content dispostion in the code : ResponseContentDisposition: "attachment;filename=key"; as suggested in the post you forwarded
yeah, does it work ?
I was just reading through
nope, I already had that
there seem to be a way when generating the presigned url
ok, let me try that
Excellent, it works :-) Thanks for your help @BertrandMarechal ! Appreciate it
I just added content disposition as a parameter object
var url = s3.getSignedUrl('getObject', {
Bucket: bucket,
Key: key,
Expires: 60 * 5,
ResponseContentDisposition: attachment; filename="${key}"
nice :)
Gareth Denny

Howdy :bow:
Wanted to drop in in case I'm missing anything obvious before asking in an issue.

I have an ECS Task which is using s3.uploadto put files of varying sizes in S3.
When the object is put using PutObject it works as expected, with the correct ECS Task Role.
When the object is put using CreateMultipartUpload it seems to somehow end up with the ECS EC2 Instance Role, not the Task Role, so fails to upload with AccessDenied.
Am I missing something?
Much Thanks!

Prashant Singh
Hi everyone, I am facing cors err: Access to XMLHttpRequest at '<lambda-url>' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
I have specifically enabled cors in my API Gateway for that lambda and also set the response header. But facing the issue
@prashant1k99 did you figure it out ?
Michał Kłoda
Hi everyone. I have dynamodb table and I would like to run post deployment script to populate table by some data. Any thoughts how it can be done?
Prashant Singh

Hi everyone, I want to create image manipulation on the image fetched from the AWS S3 and would like to perform manipulation action on it. I am using stream to solve the problem of loading big files.

import AWS from 'aws-sdk'
import sharp from 'sharp'

const s3 = new AWS.S3()
const transformer = (w, res, next) =>
        .on('data', (data) => {
            res.write(data, 'binary')
        .on('error', (err) => next(err))
        .on('end', () => {

const readStream = s3
        Bucket: process.env.UPLOAD_BUCKET_NAME,
        Key: 'test.jpg'

const getImage = (w, res, next) => {
    readStream.pipe(transformer(w, res, next))
    readStream.on('error', (err) => next(err))

export default getImage

I am calling the getImage method on the route and this function serves images for the first time but when the second time the Image is requested, it throws Error: Input buffer contains unsupported image format

Jairo Campos Vargas
Hi, guys, I have a question I am using getCostandusage js SDK, I wanted to get all the charges with this filter "Other out-of-cycle charges" but I did not find the machine name to put into the RECORD_TYPE filter do you know what is this name ?
Jairo Campos Vargas
ok I found it, it's Other
Hi guys, how do you get an access token to call changeUserPassword for cognito?
Hi guys, I'm not able to find a solution to this problem: https://stackoverflow.com/questions/63741402/aws-lambda-usermigration-forgotpassword-trigger-not-migrating-users any help would be awesome! Thanks a lot!
Can anyone please shed some light what is the significance of $response.error in the response object when using .promise() variant. I am assuming that SDK will throw in every case of error, or is it not the case? Do I ever need to check $response.error or should I assume if the promise resolved, then everything is a-ok? Thanks.
Talha Javaid Malik
Can anyone please tell me why my terminal showing this error message? SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your key and signing method
Dear all, I appreciate your support, I want to use Node.js SDK to perform some tasks on AWS, for example:
  • I want to list my account information
  • List my regions
  • List my resources per region
    any guidelines where should I start?
Lachlan Vass
Hey @iamnns - sorry for the late reply. I only just joined this chat, but can offer some insight. I would start by looking at the Organizations section of the SDK (https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Organizations.html)
I am pretty sure that will allow you to complete the first two points on your list. As for listing resources per region, I am not really sure where to look. I know it is weirdly difficult to look at the resource in an AWS account which have been "set up" by a user at some point. All the resources are available, but not all are in use at a given time. Maybe Resource Groups would be a good place to start? (https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/ResourceGroups.html)
Nare Sai Chaitanya
@Talha089 Can you provide more info about the issue by sharing the http response
Hi All, am trying to get results from cloudwatchlogs using GetQueryResults, but cant figure out how to wait till the status reaches complete. Dont want to use SetTimeout. Is there a graceful way to achieve this other than SetTimeout? Any help is appreciated.
Usama Tahir
Hi all, I used this tutorial (https://coderwall.com/p/j5nk9w/access-ec2-linux-box-over-ssh-without-pem-file) to access ec2 instance without .pem file.
Now what I want is to access ec2 only when I have .pem file. How can I reverse the process done by the tutorial above?
2 replies