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);
        signedUrl = result;
    } catch (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().