Skip to content

Commit 1ad5934

Browse files
committed
feat(s3-request-presigner): add readme
1 parent cc1c30c commit 1ad5934

File tree

2 files changed

+52
-0
lines changed

2 files changed

+52
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,49 @@
11
# @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+
```

packages/service-types-generator/src/internalImports.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,10 @@ export const IMPORTS: { [key: string]: Import } = {
324324
package: "@aws-sdk/route53-id-normalizer-middleware",
325325
version: "^0.1.0-preview.3"
326326
},
327+
"s3-request-presigner": {
328+
package: "@aws-sdk/s3-request-presigner",
329+
version: "^0.1.0-preview.1"
330+
},
327331
"service-error-classification": {
328332
package: "@aws-sdk/service-error-classification",
329333
version: "^0.1.0-preview.1"

0 commit comments

Comments
 (0)