S3 Presigned URL (NodeJS SDK) By Example

    
    const params = {
        Bucket: bucketName,
        Key: objectKey,
        Expires: 600
    };
    
    let signedUrl = null;
    
    try {
        const result = await S3.getSignedUrlPromise('putObject', params);
    
        console.log(result);
        
        signedUrl = result;
    } catch (e) {
        console.error(e);
    }

You may directly PUT to returned presigned URL from any browser and any address. Change “putObject” to “getObject” to get a time-limited URL for downloading an object.

There are no way to limit S3 object downloads by number of requests. Presigned URL will be valid for as many time as requested until it expires.

NOTE: You cannot directly add .promise() as you would to getSignedUrl(). The async version of the method is named getSignedUrlPromise().