|
1 | 1 | # @aws-sdk/s3-request-presigner
|
| 2 | + |
| 3 | +This package provides a presigner based on signature V4 that will attempt to generate signed url for S3. |
| 4 | +Not all operation parameters are supported when using pre-signed URLs. Certain parameters, such as |
| 5 | +`SSECustomerKey`, `ACL`, `Expires`, `ContentLength`, or `Tagging` must be provided as headers when |
| 6 | +sending a request. |
| 7 | + |
| 8 | +JavaScript Example: |
| 9 | + |
| 10 | +```javascript |
| 11 | +const S3Presigner = require("@aws-sdk/s3-request-presigner").S3RequestPresigner; |
| 12 | +const browserSha256 = require("@aws-crypto/sha256-browser").Sha256; |
| 13 | +const nodeSha256 = require("@aws-sdk/hash-node").Hash; |
| 14 | +const signer = new S3Presigner({ |
| 15 | + region: regionProvider, |
| 16 | + credentials: credentialsProvider, |
| 17 | + sha256: nodeSha256 //if the signer is used in browser, use `browserSha256` then |
| 18 | +}); |
| 19 | +const Day = 24 * 60 * 60 * 1000; |
| 20 | +const expiration = new Date(Date.now() + 1 * Day); |
| 21 | +const url = signer.presignRequest(request, expiration); |
| 22 | +``` |
| 23 | + |
| 24 | +Typescript Example: |
| 25 | + |
| 26 | +```javascript |
| 27 | +import { S3RequestPresigner } from "@aws-sdk/s3-request-presigner"; |
| 28 | +import { Sha256 as browserSha256 } from "@aws-crypto/sha256-browser"; |
| 29 | +import { Hash as nodeSha256 } from "@aws-sdk/hash-node"; |
| 30 | +const signer = new S3RequestPresigner({ |
| 31 | + region: regionProvider, |
| 32 | + credentials: credentialsProvider, |
| 33 | + sha256: nodeSha256 //if the signer is used in browser, use `browserSha256` then |
| 34 | +}); |
| 35 | +const Day = 24 * 60 * 60 * 1000; |
| 36 | +const expiration = new Date(Date.now() + 1 * Day); |
| 37 | +const url = signer.presignRequest(request, expiration); |
| 38 | +``` |
| 39 | + |
| 40 | +To avoid redundant construction parameters when instantiate the s3 presigner, |
| 41 | +you can simply spread the configurations of an existing s3 clients and supply to |
| 42 | +the presigner's constructor. |
| 43 | + |
| 44 | +```javascript |
| 45 | +//s3 is instantiated from S3Client from @aws-sdk/client-s3-* packages |
| 46 | +const signer = new S3RequestPresigner({ |
| 47 | + ...s3.config |
| 48 | +}); |
| 49 | +``` |
0 commit comments