@aws-sdk/middleware-sdk-s3 3.58.0 → 3.86.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/dist-cjs/check-content-length-header.js +36 -0
- package/dist-cjs/index.js +1 -1
- package/dist-es/check-content-length-header.js +38 -0
- package/dist-es/index.js +1 -1
- package/dist-types/check-content-length-header.d.ts +16 -0
- package/dist-types/index.d.ts +1 -1
- package/dist-types/ts3.4/check-content-length-header.d.ts +7 -0
- package/dist-types/ts3.4/index.d.ts +1 -1
- package/package.json +3 -19
- package/dist-cjs/S3SignatureV4.js +0 -49
- package/dist-es/S3SignatureV4.js +0 -55
- package/dist-types/S3SignatureV4.d.ts +0 -22
- package/dist-types/ts3.4/S3SignatureV4.d.ts +0 -15
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,36 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [3.86.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.85.0...v3.86.0) (2022-05-06)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **middleware-sdk-s3:** improve error message on stream upload ([#3571](https://github.com/aws/aws-sdk-js-v3/issues/3571)) ([c0ed833](https://github.com/aws/aws-sdk-js-v3/commit/c0ed83347f571b3f5d1e41dc91c172abafb44b7b))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [3.78.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.77.0...v3.78.0) (2022-04-26)
|
|
18
|
+
|
|
19
|
+
**Note:** Version bump only for package @aws-sdk/middleware-sdk-s3
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# [3.66.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.65.0...v3.66.0) (2022-04-07)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Features
|
|
29
|
+
|
|
30
|
+
* **signature-v4-multi-region:** support multi-region sigv4a signer ([#3518](https://github.com/aws/aws-sdk-js-v3/issues/3518)) ([16aa220](https://github.com/aws/aws-sdk-js-v3/commit/16aa22042c92b33c702f775b87e830fb767e479c))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
6
36
|
# [3.58.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.57.0...v3.58.0) (2022-03-28)
|
|
7
37
|
|
|
8
38
|
**Note:** Version bump only for package @aws-sdk/middleware-sdk-s3
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCheckContentLengthHeaderPlugin = exports.checkContentLengthHeaderMiddlewareOptions = exports.checkContentLengthHeader = void 0;
|
|
4
|
+
const protocol_http_1 = require("@aws-sdk/protocol-http");
|
|
5
|
+
const CONTENT_LENGTH_HEADER = "content-length";
|
|
6
|
+
function checkContentLengthHeader() {
|
|
7
|
+
return (next, context) => async (args) => {
|
|
8
|
+
var _a;
|
|
9
|
+
const { request } = args;
|
|
10
|
+
if (protocol_http_1.HttpRequest.isInstance(request)) {
|
|
11
|
+
if (!request.headers[CONTENT_LENGTH_HEADER]) {
|
|
12
|
+
const message = `Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.`;
|
|
13
|
+
if (typeof ((_a = context === null || context === void 0 ? void 0 : context.logger) === null || _a === void 0 ? void 0 : _a.warn) === "function") {
|
|
14
|
+
context.logger.warn(message);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
console.warn(message);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return next({ ...args });
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
exports.checkContentLengthHeader = checkContentLengthHeader;
|
|
25
|
+
exports.checkContentLengthHeaderMiddlewareOptions = {
|
|
26
|
+
step: "finalizeRequest",
|
|
27
|
+
tags: ["CHECK_CONTENT_LENGTH_HEADER"],
|
|
28
|
+
name: "getCheckContentLengthHeaderPlugin",
|
|
29
|
+
override: true,
|
|
30
|
+
};
|
|
31
|
+
const getCheckContentLengthHeaderPlugin = (unused) => ({
|
|
32
|
+
applyToStack: (clientStack) => {
|
|
33
|
+
clientStack.add(checkContentLengthHeader(), exports.checkContentLengthHeaderMiddlewareOptions);
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
exports.getCheckContentLengthHeaderPlugin = getCheckContentLengthHeaderPlugin;
|
package/dist-cjs/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./
|
|
4
|
+
tslib_1.__exportStar(require("./check-content-length-header"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./throw-200-exceptions"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./use-regional-endpoint"), exports);
|
|
7
7
|
tslib_1.__exportStar(require("./validate-bucket-name"), exports);
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { __assign, __awaiter, __generator } from "tslib";
|
|
2
|
+
import { HttpRequest } from "@aws-sdk/protocol-http";
|
|
3
|
+
var CONTENT_LENGTH_HEADER = "content-length";
|
|
4
|
+
export function checkContentLengthHeader() {
|
|
5
|
+
var _this = this;
|
|
6
|
+
return function (next, context) {
|
|
7
|
+
return function (args) { return __awaiter(_this, void 0, void 0, function () {
|
|
8
|
+
var request, message;
|
|
9
|
+
var _a;
|
|
10
|
+
return __generator(this, function (_b) {
|
|
11
|
+
request = args.request;
|
|
12
|
+
if (HttpRequest.isInstance(request)) {
|
|
13
|
+
if (!request.headers[CONTENT_LENGTH_HEADER]) {
|
|
14
|
+
message = "Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.";
|
|
15
|
+
if (typeof ((_a = context === null || context === void 0 ? void 0 : context.logger) === null || _a === void 0 ? void 0 : _a.warn) === "function") {
|
|
16
|
+
context.logger.warn(message);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
console.warn(message);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return [2, next(__assign({}, args))];
|
|
24
|
+
});
|
|
25
|
+
}); };
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export var checkContentLengthHeaderMiddlewareOptions = {
|
|
29
|
+
step: "finalizeRequest",
|
|
30
|
+
tags: ["CHECK_CONTENT_LENGTH_HEADER"],
|
|
31
|
+
name: "getCheckContentLengthHeaderPlugin",
|
|
32
|
+
override: true,
|
|
33
|
+
};
|
|
34
|
+
export var getCheckContentLengthHeaderPlugin = function (unused) { return ({
|
|
35
|
+
applyToStack: function (clientStack) {
|
|
36
|
+
clientStack.add(checkContentLengthHeader(), checkContentLengthHeaderMiddlewareOptions);
|
|
37
|
+
},
|
|
38
|
+
}); };
|
package/dist-es/index.js
CHANGED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FinalizeRequestHandlerOptions, FinalizeRequestMiddleware, Pluggable } from "@aws-sdk/types";
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
*
|
|
5
|
+
* Log a warning if the input to PutObject is detected to be a Stream of unknown ContentLength and
|
|
6
|
+
* recommend the usage of the @aws-sdk/lib-storage Upload class.
|
|
7
|
+
*/
|
|
8
|
+
export declare function checkContentLengthHeader(): FinalizeRequestMiddleware<any, any>;
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare const checkContentLengthHeaderMiddlewareOptions: FinalizeRequestHandlerOptions;
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export declare const getCheckContentLengthHeaderPlugin: (unused: any) => Pluggable<any, any>;
|
package/dist-types/index.d.ts
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FinalizeRequestHandlerOptions, FinalizeRequestMiddleware, Pluggable } from "@aws-sdk/types";
|
|
2
|
+
|
|
3
|
+
export declare function checkContentLengthHeader(): FinalizeRequestMiddleware<any, any>;
|
|
4
|
+
|
|
5
|
+
export declare const checkContentLengthHeaderMiddlewareOptions: FinalizeRequestHandlerOptions;
|
|
6
|
+
|
|
7
|
+
export declare const getCheckContentLengthHeaderPlugin: (unused: any) => Pluggable<any, any>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/middleware-sdk-s3",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.86.0",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
|
|
6
6
|
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
@@ -13,26 +13,18 @@
|
|
|
13
13
|
"main": "./dist-cjs/index.js",
|
|
14
14
|
"module": "./dist-es/index.js",
|
|
15
15
|
"types": "./dist-types/index.d.ts",
|
|
16
|
-
"browser": {
|
|
17
|
-
"@aws-sdk/signature-v4-crt": false
|
|
18
|
-
},
|
|
19
|
-
"react-native": {
|
|
20
|
-
"@aws-sdk/signature-v4-crt": false
|
|
21
|
-
},
|
|
22
16
|
"author": {
|
|
23
17
|
"name": "AWS SDK for JavaScript Team",
|
|
24
18
|
"url": "https://aws.amazon.com/javascript/"
|
|
25
19
|
},
|
|
26
20
|
"license": "Apache-2.0",
|
|
27
21
|
"dependencies": {
|
|
28
|
-
"@aws-sdk/protocol-http": "3.
|
|
29
|
-
"@aws-sdk/
|
|
30
|
-
"@aws-sdk/types": "3.55.0",
|
|
22
|
+
"@aws-sdk/protocol-http": "3.78.0",
|
|
23
|
+
"@aws-sdk/types": "3.78.0",
|
|
31
24
|
"@aws-sdk/util-arn-parser": "3.55.0",
|
|
32
25
|
"tslib": "^2.3.1"
|
|
33
26
|
},
|
|
34
27
|
"devDependencies": {
|
|
35
|
-
"@aws-sdk/signature-v4-crt": "3.58.0",
|
|
36
28
|
"@tsconfig/recommended": "1.0.1",
|
|
37
29
|
"concurrently": "7.0.0",
|
|
38
30
|
"downlevel-dts": "0.7.0",
|
|
@@ -40,14 +32,6 @@
|
|
|
40
32
|
"typedoc": "0.19.2",
|
|
41
33
|
"typescript": "~4.6.2"
|
|
42
34
|
},
|
|
43
|
-
"peerDependencies": {
|
|
44
|
-
"@aws-sdk/signature-v4-crt": "^3.54.1"
|
|
45
|
-
},
|
|
46
|
-
"peerDependenciesMeta": {
|
|
47
|
-
"@aws-sdk/signature-v4-crt": {
|
|
48
|
-
"optional": true
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
35
|
"engines": {
|
|
52
36
|
"node": ">= 12.0.0"
|
|
53
37
|
},
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.S3SignatureV4 = void 0;
|
|
4
|
-
const signature_v4_1 = require("@aws-sdk/signature-v4");
|
|
5
|
-
class S3SignatureV4 {
|
|
6
|
-
constructor(options) {
|
|
7
|
-
this.sigv4Signer = new signature_v4_1.SignatureV4(options);
|
|
8
|
-
this.signerOptions = options;
|
|
9
|
-
}
|
|
10
|
-
async sign(requestToSign, options = {}) {
|
|
11
|
-
if (options.signingRegion === "*") {
|
|
12
|
-
if (this.signerOptions.runtime !== "node")
|
|
13
|
-
throw new Error("This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js");
|
|
14
|
-
return this.getSigv4aSigner().sign(requestToSign, options);
|
|
15
|
-
}
|
|
16
|
-
return this.sigv4Signer.sign(requestToSign, options);
|
|
17
|
-
}
|
|
18
|
-
async presign(originalRequest, options = {}) {
|
|
19
|
-
if (options.signingRegion === "*") {
|
|
20
|
-
if (this.signerOptions.runtime !== "node")
|
|
21
|
-
throw new Error("This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js");
|
|
22
|
-
return this.getSigv4aSigner().presign(originalRequest, options);
|
|
23
|
-
}
|
|
24
|
-
return this.sigv4Signer.presign(originalRequest, options);
|
|
25
|
-
}
|
|
26
|
-
getSigv4aSigner() {
|
|
27
|
-
if (!this.sigv4aSigner) {
|
|
28
|
-
let CrtSignerV4;
|
|
29
|
-
try {
|
|
30
|
-
CrtSignerV4 = require("@aws-sdk/signature-v4-crt").CrtSignerV4;
|
|
31
|
-
if (typeof CrtSignerV4 !== "function")
|
|
32
|
-
throw new Error();
|
|
33
|
-
}
|
|
34
|
-
catch (e) {
|
|
35
|
-
e.message =
|
|
36
|
-
`${e.message}\nPlease check if you have installed "@aws-sdk/signature-v4-crt" package explicitly. \n` +
|
|
37
|
-
"For more information please go to " +
|
|
38
|
-
"https://github.com/aws/aws-sdk-js-v3##functionality-requiring-aws-common-runtime-crt";
|
|
39
|
-
throw e;
|
|
40
|
-
}
|
|
41
|
-
this.sigv4aSigner = new CrtSignerV4({
|
|
42
|
-
...this.signerOptions,
|
|
43
|
-
signingAlgorithm: 1,
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
return this.sigv4aSigner;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
exports.S3SignatureV4 = S3SignatureV4;
|
package/dist-es/S3SignatureV4.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { __assign, __awaiter, __generator } from "tslib";
|
|
2
|
-
import { SignatureV4 } from "@aws-sdk/signature-v4";
|
|
3
|
-
var S3SignatureV4 = (function () {
|
|
4
|
-
function S3SignatureV4(options) {
|
|
5
|
-
this.sigv4Signer = new SignatureV4(options);
|
|
6
|
-
this.signerOptions = options;
|
|
7
|
-
}
|
|
8
|
-
S3SignatureV4.prototype.sign = function (requestToSign, options) {
|
|
9
|
-
if (options === void 0) { options = {}; }
|
|
10
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
11
|
-
return __generator(this, function (_a) {
|
|
12
|
-
if (options.signingRegion === "*") {
|
|
13
|
-
if (this.signerOptions.runtime !== "node")
|
|
14
|
-
throw new Error("This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js");
|
|
15
|
-
return [2, this.getSigv4aSigner().sign(requestToSign, options)];
|
|
16
|
-
}
|
|
17
|
-
return [2, this.sigv4Signer.sign(requestToSign, options)];
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
S3SignatureV4.prototype.presign = function (originalRequest, options) {
|
|
22
|
-
if (options === void 0) { options = {}; }
|
|
23
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
24
|
-
return __generator(this, function (_a) {
|
|
25
|
-
if (options.signingRegion === "*") {
|
|
26
|
-
if (this.signerOptions.runtime !== "node")
|
|
27
|
-
throw new Error("This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js");
|
|
28
|
-
return [2, this.getSigv4aSigner().presign(originalRequest, options)];
|
|
29
|
-
}
|
|
30
|
-
return [2, this.sigv4Signer.presign(originalRequest, options)];
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
S3SignatureV4.prototype.getSigv4aSigner = function () {
|
|
35
|
-
if (!this.sigv4aSigner) {
|
|
36
|
-
var CrtSignerV4_1;
|
|
37
|
-
try {
|
|
38
|
-
CrtSignerV4_1 = require("@aws-sdk/signature-v4-crt").CrtSignerV4;
|
|
39
|
-
if (typeof CrtSignerV4_1 !== "function")
|
|
40
|
-
throw new Error();
|
|
41
|
-
}
|
|
42
|
-
catch (e) {
|
|
43
|
-
e.message =
|
|
44
|
-
"".concat(e.message, "\nPlease check if you have installed \"@aws-sdk/signature-v4-crt\" package explicitly. \n") +
|
|
45
|
-
"For more information please go to " +
|
|
46
|
-
"https://github.com/aws/aws-sdk-js-v3##functionality-requiring-aws-common-runtime-crt";
|
|
47
|
-
throw e;
|
|
48
|
-
}
|
|
49
|
-
this.sigv4aSigner = new CrtSignerV4_1(__assign(__assign({}, this.signerOptions), { signingAlgorithm: 1 }));
|
|
50
|
-
}
|
|
51
|
-
return this.sigv4aSigner;
|
|
52
|
-
};
|
|
53
|
-
return S3SignatureV4;
|
|
54
|
-
}());
|
|
55
|
-
export { S3SignatureV4 };
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { SignatureV4CryptoInit, SignatureV4Init } from "@aws-sdk/signature-v4";
|
|
2
|
-
import { HttpRequest, RequestPresigner, RequestPresigningArguments, RequestSigner, RequestSigningArguments } from "@aws-sdk/types";
|
|
3
|
-
export declare type S3SignerV4Init = SignatureV4Init & SignatureV4CryptoInit & {
|
|
4
|
-
runtime?: string;
|
|
5
|
-
};
|
|
6
|
-
/**
|
|
7
|
-
* A SigV4-compatible signer for S3 service. In order to support SigV4a algorithm according to the operation input
|
|
8
|
-
* dynamically, the signer wraps native module SigV4a signer and JS SigV4 signer. It signs the request with SigV4a
|
|
9
|
-
* algorithm if the request needs to be signed with `*` region. Otherwise, it signs the request with normal SigV4
|
|
10
|
-
* signer.
|
|
11
|
-
* Note that SigV4a signer is only supported in Node.js now because it depends on a native dependency.
|
|
12
|
-
* @private
|
|
13
|
-
*/
|
|
14
|
-
export declare class S3SignatureV4 implements RequestPresigner, RequestSigner {
|
|
15
|
-
private readonly sigv4Signer;
|
|
16
|
-
private sigv4aSigner?;
|
|
17
|
-
private readonly signerOptions;
|
|
18
|
-
constructor(options: S3SignerV4Init);
|
|
19
|
-
sign(requestToSign: HttpRequest, options?: RequestSigningArguments): Promise<HttpRequest>;
|
|
20
|
-
presign(originalRequest: HttpRequest, options?: RequestPresigningArguments): Promise<HttpRequest>;
|
|
21
|
-
private getSigv4aSigner;
|
|
22
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { SignatureV4CryptoInit, SignatureV4Init } from "@aws-sdk/signature-v4";
|
|
2
|
-
import { HttpRequest, RequestPresigner, RequestPresigningArguments, RequestSigner, RequestSigningArguments } from "@aws-sdk/types";
|
|
3
|
-
export declare type S3SignerV4Init = SignatureV4Init & SignatureV4CryptoInit & {
|
|
4
|
-
runtime?: string;
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
export declare class S3SignatureV4 implements RequestPresigner, RequestSigner {
|
|
8
|
-
private readonly sigv4Signer;
|
|
9
|
-
private sigv4aSigner?;
|
|
10
|
-
private readonly signerOptions;
|
|
11
|
-
constructor(options: S3SignerV4Init);
|
|
12
|
-
sign(requestToSign: HttpRequest, options?: RequestSigningArguments): Promise<HttpRequest>;
|
|
13
|
-
presign(originalRequest: HttpRequest, options?: RequestPresigningArguments): Promise<HttpRequest>;
|
|
14
|
-
private getSigv4aSigner;
|
|
15
|
-
}
|