@aws-sdk/lib-transfer-manager 0.0.0-stage → 0.1.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/README.md +303 -2
- package/dist-cjs/index.js +2 -0
- package/dist-cjs/submodules/transfer-manager/index.js +3166 -0
- package/dist-cjs/submodules/worker/index.js +579 -0
- package/dist-es/index.js +1 -0
- package/dist-es/submodules/transfer-manager/S3TransferManager.js +2229 -0
- package/dist-es/submodules/transfer-manager/chunker.js +115 -0
- package/dist-es/submodules/transfer-manager/directory-transfer-utils.js +102 -0
- package/dist-es/submodules/transfer-manager/event-listener-types.js +1 -0
- package/dist-es/submodules/transfer-manager/file-manager.js +70 -0
- package/dist-es/submodules/transfer-manager/index.browser.js +11 -0
- package/dist-es/submodules/transfer-manager/index.js +11 -0
- package/dist-es/submodules/transfer-manager/join-streams.browser.js +101 -0
- package/dist-es/submodules/transfer-manager/join-streams.js +105 -0
- package/dist-es/submodules/transfer-manager/log-level.js +30 -0
- package/dist-es/submodules/transfer-manager/ordered-part-queue.js +57 -0
- package/dist-es/submodules/transfer-manager/types.js +1 -0
- package/dist-es/submodules/transfer-manager/worker-http-handler.browser.js +25 -0
- package/dist-es/submodules/transfer-manager/worker-http-handler.js +453 -0
- package/dist-es/submodules/worker/http-request-worker.js +578 -0
- package/dist-es/submodules/worker/index.js +1 -0
- package/dist-types/index.d.ts +2 -0
- package/dist-types/submodules/transfer-manager/S3TransferManager.d.ts +60 -0
- package/dist-types/submodules/transfer-manager/chunker.d.ts +7 -0
- package/dist-types/submodules/transfer-manager/directory-transfer-utils.d.ts +90 -0
- package/dist-types/submodules/transfer-manager/event-listener-types.d.ts +54 -0
- package/dist-types/submodules/transfer-manager/file-manager.d.ts +51 -0
- package/dist-types/submodules/transfer-manager/index.browser.d.ts +10 -0
- package/dist-types/submodules/transfer-manager/index.d.ts +10 -0
- package/dist-types/submodules/transfer-manager/join-streams.browser.d.ts +21 -0
- package/dist-types/submodules/transfer-manager/join-streams.d.ts +26 -0
- package/dist-types/submodules/transfer-manager/log-level.d.ts +13 -0
- package/dist-types/submodules/transfer-manager/ordered-part-queue.d.ts +73 -0
- package/dist-types/submodules/transfer-manager/types.d.ts +473 -0
- package/dist-types/submodules/transfer-manager/worker-http-handler.browser.d.ts +20 -0
- package/dist-types/submodules/transfer-manager/worker-http-handler.d.ts +410 -0
- package/dist-types/submodules/worker/http-request-worker.d.ts +1 -0
- package/dist-types/submodules/worker/index.d.ts +1 -0
- package/dist-types/ts3.4/index.d.ts +2 -0
- package/dist-types/ts3.4/submodules/transfer-manager/S3TransferManager.d.ts +38 -0
- package/dist-types/ts3.4/submodules/transfer-manager/chunker.d.ts +10 -0
- package/dist-types/ts3.4/submodules/transfer-manager/directory-transfer-utils.d.ts +23 -0
- package/dist-types/ts3.4/submodules/transfer-manager/event-listener-types.d.ts +12 -0
- package/dist-types/ts3.4/submodules/transfer-manager/file-manager.d.ts +9 -0
- package/dist-types/ts3.4/submodules/transfer-manager/index.browser.d.ts +3 -0
- package/dist-types/ts3.4/submodules/transfer-manager/index.d.ts +3 -0
- package/dist-types/ts3.4/submodules/transfer-manager/join-streams.browser.d.ts +13 -0
- package/dist-types/ts3.4/submodules/transfer-manager/join-streams.d.ts +13 -0
- package/dist-types/ts3.4/submodules/transfer-manager/log-level.d.ts +13 -0
- package/dist-types/ts3.4/submodules/transfer-manager/ordered-part-queue.d.ts +18 -0
- package/dist-types/ts3.4/submodules/transfer-manager/types.d.ts +184 -0
- package/dist-types/ts3.4/submodules/transfer-manager/worker-http-handler.browser.d.ts +17 -0
- package/dist-types/ts3.4/submodules/transfer-manager/worker-http-handler.d.ts +241 -0
- package/dist-types/ts3.4/submodules/worker/http-request-worker.d.ts +1 -0
- package/dist-types/ts3.4/submodules/worker/index.d.ts +1 -0
- package/package.json +108 -4
- package/transfer-manager.d.ts +5 -0
- package/transfer-manager.js +5 -0
- package/worker.d.ts +5 -0
- package/worker.js +5 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import {
|
|
2
|
+
_Object as S3Object,
|
|
3
|
+
CompleteMultipartUploadCommandOutput,
|
|
4
|
+
CreateMultipartUploadCommandInput,
|
|
5
|
+
GetObjectCommandInput,
|
|
6
|
+
GetObjectCommandOutput,
|
|
7
|
+
PutObjectCommandInput,
|
|
8
|
+
PutObjectCommandOutput,
|
|
9
|
+
S3Client,
|
|
10
|
+
} from "@aws-sdk/client-s3";
|
|
11
|
+
import { HttpHandlerOptions, Logger } from "@smithy/types";
|
|
12
|
+
import {
|
|
13
|
+
AddEventListenerOptions,
|
|
14
|
+
EventListener,
|
|
15
|
+
RemoveEventListenerOptions,
|
|
16
|
+
} from "./event-listener-types";
|
|
17
|
+
export interface S3TransferManagerConfig {
|
|
18
|
+
s3?: S3Client;
|
|
19
|
+
targetPartSizeBytes?: number;
|
|
20
|
+
multipartUploadThresholdBytes?: number;
|
|
21
|
+
requestChecksumCalculation?: "WHEN_SUPPORTED" | "WHEN_REQUIRED";
|
|
22
|
+
responseChecksumValidation?: "WHEN_SUPPORTED" | "WHEN_REQUIRED";
|
|
23
|
+
multipartDownloadType?: "RANGE" | "PART";
|
|
24
|
+
eventListeners?: TransferEventListeners;
|
|
25
|
+
maxConcurrentDownloads?: number;
|
|
26
|
+
maxConcurrentUploads?: number;
|
|
27
|
+
workerThreadCount?: number;
|
|
28
|
+
useODirect?: boolean;
|
|
29
|
+
logger?: Logger;
|
|
30
|
+
}
|
|
31
|
+
export type UploadRequest = PutObjectCommandInput & CreateMultipartUploadCommandInput;
|
|
32
|
+
export type UploadResponse = PutObjectCommandOutput | CompleteMultipartUploadCommandOutput;
|
|
33
|
+
export type DownloadRequest = GetObjectCommandInput;
|
|
34
|
+
export type DownloadResponse = GetObjectCommandOutput;
|
|
35
|
+
export interface DownloadToFileRequest extends DownloadRequest {
|
|
36
|
+
destination: string;
|
|
37
|
+
failIfExists?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface DownloadToFileResponse extends Pick<
|
|
40
|
+
DownloadResponse,
|
|
41
|
+
Exclude<keyof DownloadResponse, "Body">
|
|
42
|
+
> {
|
|
43
|
+
bytesWritten: number;
|
|
44
|
+
}
|
|
45
|
+
export type TransferOptions = HttpHandlerOptions & {
|
|
46
|
+
eventListeners?: TransferEventListeners;
|
|
47
|
+
};
|
|
48
|
+
export interface IS3TransferManager {
|
|
49
|
+
upload(request: UploadRequest, transferOptions?: TransferOptions): Promise<UploadResponse>;
|
|
50
|
+
download(request: DownloadRequest, transferOptions?: TransferOptions): Promise<DownloadResponse>;
|
|
51
|
+
downloadToFile(
|
|
52
|
+
request: DownloadToFileRequest,
|
|
53
|
+
transferOptions?: TransferOptions,
|
|
54
|
+
): Promise<DownloadToFileResponse>;
|
|
55
|
+
uploadDirectory(
|
|
56
|
+
request: UploadDirectoryRequest,
|
|
57
|
+
transferOptions?: TransferOptions,
|
|
58
|
+
): Promise<UploadDirectoryResponse>;
|
|
59
|
+
downloadDirectory(
|
|
60
|
+
request: DownloadDirectoryRequest,
|
|
61
|
+
transferOptions?: TransferOptions,
|
|
62
|
+
): Promise<DownloadDirectoryResponse>;
|
|
63
|
+
addEventListener(
|
|
64
|
+
type: "transferInitiated",
|
|
65
|
+
callback: EventListener<TransferEvent>,
|
|
66
|
+
options?: AddEventListenerOptions | boolean,
|
|
67
|
+
): void;
|
|
68
|
+
addEventListener(
|
|
69
|
+
type: "bytesTransferred",
|
|
70
|
+
callback: EventListener<TransferEvent>,
|
|
71
|
+
options?: AddEventListenerOptions | boolean,
|
|
72
|
+
): void;
|
|
73
|
+
addEventListener(
|
|
74
|
+
type: "transferComplete",
|
|
75
|
+
callback: EventListener<TransferCompleteEvent>,
|
|
76
|
+
options?: AddEventListenerOptions | boolean,
|
|
77
|
+
): void;
|
|
78
|
+
addEventListener(
|
|
79
|
+
type: "transferFailed",
|
|
80
|
+
callback: EventListener<TransferEvent>,
|
|
81
|
+
options?: AddEventListenerOptions | boolean,
|
|
82
|
+
): void;
|
|
83
|
+
addEventListener(
|
|
84
|
+
type: string,
|
|
85
|
+
callback: EventListener,
|
|
86
|
+
options?: AddEventListenerOptions | boolean,
|
|
87
|
+
): void;
|
|
88
|
+
dispatchEvent(event: Event & TransferEvent): boolean;
|
|
89
|
+
dispatchEvent(event: Event & TransferCompleteEvent): boolean;
|
|
90
|
+
dispatchEvent(event: Event): boolean;
|
|
91
|
+
removeEventListener(
|
|
92
|
+
type: "transferInitiated",
|
|
93
|
+
callback: EventListener<TransferEvent>,
|
|
94
|
+
options?: RemoveEventListenerOptions | boolean,
|
|
95
|
+
): void;
|
|
96
|
+
removeEventListener(
|
|
97
|
+
type: "bytesTransferred",
|
|
98
|
+
callback: EventListener<TransferEvent>,
|
|
99
|
+
options?: RemoveEventListenerOptions | boolean,
|
|
100
|
+
): void;
|
|
101
|
+
removeEventListener(
|
|
102
|
+
type: "transferComplete",
|
|
103
|
+
callback: EventListener<TransferCompleteEvent>,
|
|
104
|
+
options?: RemoveEventListenerOptions | boolean,
|
|
105
|
+
): void;
|
|
106
|
+
removeEventListener(
|
|
107
|
+
type: "transferFailed",
|
|
108
|
+
callback: EventListener<TransferEvent>,
|
|
109
|
+
options?: RemoveEventListenerOptions | boolean,
|
|
110
|
+
): void;
|
|
111
|
+
removeEventListener(
|
|
112
|
+
type: string,
|
|
113
|
+
callback: EventListener,
|
|
114
|
+
options?: RemoveEventListenerOptions | boolean,
|
|
115
|
+
): void;
|
|
116
|
+
}
|
|
117
|
+
export interface SingleObjectProgressSnapshot {
|
|
118
|
+
transferredBytes: number;
|
|
119
|
+
totalBytes?: number;
|
|
120
|
+
response?: UploadResponse | DownloadResponse;
|
|
121
|
+
}
|
|
122
|
+
export interface DirectoryProgressSnapshot {
|
|
123
|
+
transferredBytes: number;
|
|
124
|
+
totalBytes?: number;
|
|
125
|
+
transferredFiles: number;
|
|
126
|
+
totalFiles?: number;
|
|
127
|
+
}
|
|
128
|
+
export type TransferProgressSnapshot = SingleObjectProgressSnapshot | DirectoryProgressSnapshot;
|
|
129
|
+
export interface TransferEvent extends Event {
|
|
130
|
+
request: UploadRequest | DownloadRequest;
|
|
131
|
+
snapshot: TransferProgressSnapshot;
|
|
132
|
+
}
|
|
133
|
+
export interface TransferCompleteEvent extends TransferEvent {
|
|
134
|
+
response: UploadResponse | DownloadResponse;
|
|
135
|
+
}
|
|
136
|
+
export interface TransferEventListeners {
|
|
137
|
+
transferInitiated?: EventListener<TransferEvent>[];
|
|
138
|
+
bytesTransferred?: EventListener<TransferEvent>[];
|
|
139
|
+
transferComplete?: EventListener<TransferCompleteEvent>[];
|
|
140
|
+
transferFailed?: EventListener<TransferEvent>[];
|
|
141
|
+
}
|
|
142
|
+
export interface JoinStreamIterationEvents {
|
|
143
|
+
onBytes?: (byteLength: number, index: number) => void;
|
|
144
|
+
onCompletion?: (byteLength: number, index: number) => void;
|
|
145
|
+
onFailure?: (error: unknown, index: number) => void;
|
|
146
|
+
onStreamConsumed?: (index: number) => void;
|
|
147
|
+
}
|
|
148
|
+
export type CannedFailurePolicy = "terminate" | "continue";
|
|
149
|
+
export interface DirectoryTransferFailureContext {
|
|
150
|
+
request: UploadDirectoryRequest | DownloadDirectoryRequest;
|
|
151
|
+
objectRequest: PutObjectCommandInput | GetObjectCommandInput;
|
|
152
|
+
error: unknown;
|
|
153
|
+
}
|
|
154
|
+
export type FailurePolicy =
|
|
155
|
+
| CannedFailurePolicy
|
|
156
|
+
| ((context: DirectoryTransferFailureContext) => Promise<CannedFailurePolicy>);
|
|
157
|
+
export interface UploadDirectoryRequest {
|
|
158
|
+
bucket: string;
|
|
159
|
+
source: string;
|
|
160
|
+
followSymbolicLinks?: boolean;
|
|
161
|
+
recursive?: boolean;
|
|
162
|
+
s3Prefix?: string;
|
|
163
|
+
filter?: ((filePath: string) => boolean) | RegExp;
|
|
164
|
+
uploadObjectRequestModifier?: (request: PutObjectCommandInput) => PutObjectCommandInput;
|
|
165
|
+
failurePolicy?: FailurePolicy;
|
|
166
|
+
maxConcurrency?: number;
|
|
167
|
+
}
|
|
168
|
+
export interface UploadDirectoryResponse {
|
|
169
|
+
objectsUploaded: number;
|
|
170
|
+
objectsFailed: number;
|
|
171
|
+
}
|
|
172
|
+
export interface DownloadDirectoryRequest {
|
|
173
|
+
bucket: string;
|
|
174
|
+
destination: string;
|
|
175
|
+
s3Prefix?: string;
|
|
176
|
+
filter?: ((object: S3Object) => boolean) | RegExp;
|
|
177
|
+
downloadObjectRequestModifier?: (request: GetObjectCommandInput) => GetObjectCommandInput;
|
|
178
|
+
failurePolicy?: FailurePolicy;
|
|
179
|
+
maxConcurrency?: number;
|
|
180
|
+
}
|
|
181
|
+
export interface DownloadDirectoryResponse {
|
|
182
|
+
objectsDownloaded: number;
|
|
183
|
+
objectsFailed: number;
|
|
184
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type DataSource = any;
|
|
2
|
+
export declare function defaultWorkerCount(): number;
|
|
3
|
+
export declare function createEmptyReadable(): any;
|
|
4
|
+
export declare class WorkerHttpHandler {
|
|
5
|
+
constructor();
|
|
6
|
+
handle(): Promise<any>;
|
|
7
|
+
updateHttpClientConfig(): void;
|
|
8
|
+
httpHandlerConfigs(): Record<string, unknown>;
|
|
9
|
+
getDownloadResult():
|
|
10
|
+
| {
|
|
11
|
+
bytesWritten: number;
|
|
12
|
+
checksum?: string;
|
|
13
|
+
}
|
|
14
|
+
| undefined;
|
|
15
|
+
getStreamDownloadResult(): any;
|
|
16
|
+
destroy(): void;
|
|
17
|
+
}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { HttpResponse } from "@smithy/core/protocols";
|
|
2
|
+
import {
|
|
3
|
+
HttpHandlerOptions,
|
|
4
|
+
HttpRequest,
|
|
5
|
+
HttpResponse as HttpResponseShape,
|
|
6
|
+
Logger,
|
|
7
|
+
} from "@smithy/types";
|
|
8
|
+
import { ChecksumAlgorithm } from "@aws-sdk/client-s3";
|
|
9
|
+
import { Readable } from "node:stream";
|
|
10
|
+
export declare function createEmptyReadable(): Readable;
|
|
11
|
+
export interface WorkerHttpRequest extends Pick<HttpRequest, Exclude<keyof HttpRequest, "body">> {
|
|
12
|
+
body?: Uint8Array;
|
|
13
|
+
}
|
|
14
|
+
export interface WorkerHttpResponse extends Pick<
|
|
15
|
+
HttpResponseShape,
|
|
16
|
+
Exclude<keyof HttpResponseShape, "body">
|
|
17
|
+
> {
|
|
18
|
+
body?: Uint8Array;
|
|
19
|
+
}
|
|
20
|
+
interface BaseHttpWorkerRequestMessage {
|
|
21
|
+
id: number;
|
|
22
|
+
request: WorkerHttpRequest;
|
|
23
|
+
}
|
|
24
|
+
export interface HttpWorkerFileRequestMessage extends BaseHttpWorkerRequestMessage {
|
|
25
|
+
type: "httpRequestFromFile";
|
|
26
|
+
filePath: string;
|
|
27
|
+
offset: number;
|
|
28
|
+
length: number;
|
|
29
|
+
checksumAlgorithm?: ChecksumAlgorithm;
|
|
30
|
+
checksumHeader?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface HttpWorkerRAMRequestMessage extends BaseHttpWorkerRequestMessage {
|
|
33
|
+
type: "httpRequestFromRAM";
|
|
34
|
+
sharedBuffer: SharedArrayBuffer;
|
|
35
|
+
offset: number;
|
|
36
|
+
length: number;
|
|
37
|
+
checksumAlgorithm?: ChecksumAlgorithm;
|
|
38
|
+
checksumHeader?: string;
|
|
39
|
+
}
|
|
40
|
+
export type HttpWorkerRequestMessage = HttpWorkerFileRequestMessage | HttpWorkerRAMRequestMessage;
|
|
41
|
+
export interface HttpWorkerDownloadToFileMessage extends BaseHttpWorkerRequestMessage {
|
|
42
|
+
type: "httpDownloadToFile";
|
|
43
|
+
filePath: string;
|
|
44
|
+
offset: number;
|
|
45
|
+
expectedLength: number;
|
|
46
|
+
checksumAlgorithm?: ChecksumAlgorithm;
|
|
47
|
+
}
|
|
48
|
+
export interface HttpWorkerDownloadStreamMessage extends BaseHttpWorkerRequestMessage {
|
|
49
|
+
type: "httpDownloadStream";
|
|
50
|
+
expectedSize: number;
|
|
51
|
+
rangeIndex: number;
|
|
52
|
+
checksumAlgorithm?: ChecksumAlgorithm;
|
|
53
|
+
}
|
|
54
|
+
export interface HttpWorkerReturnBufferMessage {
|
|
55
|
+
type: "returnBuffer";
|
|
56
|
+
buffer: ArrayBuffer;
|
|
57
|
+
}
|
|
58
|
+
export interface HttpWorkerConfigMessage {
|
|
59
|
+
type: "config";
|
|
60
|
+
maxSockets: number;
|
|
61
|
+
useODirect?: boolean;
|
|
62
|
+
}
|
|
63
|
+
export interface HttpWorkerDoneMessage {
|
|
64
|
+
type: "done";
|
|
65
|
+
}
|
|
66
|
+
export type HttpWorkerInboundMessage =
|
|
67
|
+
| HttpWorkerRequestMessage
|
|
68
|
+
| HttpWorkerDownloadToFileMessage
|
|
69
|
+
| HttpWorkerDownloadStreamMessage
|
|
70
|
+
| HttpWorkerReturnBufferMessage
|
|
71
|
+
| HttpWorkerConfigMessage
|
|
72
|
+
| HttpWorkerDoneMessage;
|
|
73
|
+
export interface HttpWorkerResponseMessage {
|
|
74
|
+
type: "httpResponse";
|
|
75
|
+
id: number;
|
|
76
|
+
response: WorkerHttpResponse;
|
|
77
|
+
}
|
|
78
|
+
export interface HttpWorkerErrorMessage {
|
|
79
|
+
type: "httpError";
|
|
80
|
+
id: number;
|
|
81
|
+
error: string;
|
|
82
|
+
code?: string;
|
|
83
|
+
name?: string;
|
|
84
|
+
}
|
|
85
|
+
export interface HttpWorkerReadyMessage {
|
|
86
|
+
type: "ready";
|
|
87
|
+
}
|
|
88
|
+
export interface HttpWorkerLogMessage {
|
|
89
|
+
type: "workerLog";
|
|
90
|
+
level: "warn" | "debug" | "trace";
|
|
91
|
+
message: string;
|
|
92
|
+
}
|
|
93
|
+
export interface HttpWorkerDownloadResultMessage {
|
|
94
|
+
type: "httpDownloadResult";
|
|
95
|
+
id: number;
|
|
96
|
+
statusCode: number;
|
|
97
|
+
headers: Record<string, string>;
|
|
98
|
+
bytesWritten: number;
|
|
99
|
+
checksum?: string;
|
|
100
|
+
}
|
|
101
|
+
export interface HttpWorkerDownloadErrorMessage {
|
|
102
|
+
type: "httpDownloadError";
|
|
103
|
+
id: number;
|
|
104
|
+
error: string;
|
|
105
|
+
code?: string;
|
|
106
|
+
name?: string;
|
|
107
|
+
}
|
|
108
|
+
export interface HttpWorkerDownloadHttpErrorMessage {
|
|
109
|
+
type: "httpDownloadHttpError";
|
|
110
|
+
id: number;
|
|
111
|
+
statusCode: number;
|
|
112
|
+
headers: Record<string, string>;
|
|
113
|
+
body?: Uint8Array;
|
|
114
|
+
}
|
|
115
|
+
export interface HttpWorkerDownloadStreamResultMessage {
|
|
116
|
+
type: "httpDownloadStreamResult";
|
|
117
|
+
id: number;
|
|
118
|
+
rangeIndex: number;
|
|
119
|
+
buffer: ArrayBuffer;
|
|
120
|
+
byteLength: number;
|
|
121
|
+
statusCode: number;
|
|
122
|
+
headers: Record<string, string>;
|
|
123
|
+
checksum?: string;
|
|
124
|
+
}
|
|
125
|
+
export type HttpWorkerOutboundMessage =
|
|
126
|
+
| HttpWorkerResponseMessage
|
|
127
|
+
| HttpWorkerErrorMessage
|
|
128
|
+
| HttpWorkerReadyMessage
|
|
129
|
+
| HttpWorkerLogMessage
|
|
130
|
+
| HttpWorkerDownloadResultMessage
|
|
131
|
+
| HttpWorkerDownloadErrorMessage
|
|
132
|
+
| HttpWorkerDownloadHttpErrorMessage
|
|
133
|
+
| HttpWorkerDownloadStreamResultMessage;
|
|
134
|
+
export declare function defaultWorkerCount(): number;
|
|
135
|
+
export interface FileSource {
|
|
136
|
+
type: "file";
|
|
137
|
+
filePath: string;
|
|
138
|
+
partSize: number;
|
|
139
|
+
totalFileSize: number;
|
|
140
|
+
startOffset?: number;
|
|
141
|
+
checksumAlgorithm?: ChecksumAlgorithm;
|
|
142
|
+
checksumHeader?: string;
|
|
143
|
+
}
|
|
144
|
+
export interface SharedBufferSource {
|
|
145
|
+
type: "sharedBuffer";
|
|
146
|
+
sharedBuffer: SharedArrayBuffer;
|
|
147
|
+
startOffset?: number;
|
|
148
|
+
partSize: number;
|
|
149
|
+
totalSize: number;
|
|
150
|
+
checksumAlgorithm?: ChecksumAlgorithm;
|
|
151
|
+
checksumHeader?: string;
|
|
152
|
+
}
|
|
153
|
+
export type DataSource = FileSource | SharedBufferSource;
|
|
154
|
+
export interface WorkerHttpHandlerOptions extends HttpHandlerOptions {
|
|
155
|
+
dataSource?: DataSource;
|
|
156
|
+
}
|
|
157
|
+
export interface DownloadDataToFile {
|
|
158
|
+
filePath: string;
|
|
159
|
+
offset: number;
|
|
160
|
+
expectedLength: number;
|
|
161
|
+
checksumAlgorithm?: ChecksumAlgorithm;
|
|
162
|
+
resultToken?: string;
|
|
163
|
+
}
|
|
164
|
+
export interface DownloadStreamOptions {
|
|
165
|
+
expectedSize: number;
|
|
166
|
+
rangeIndex: number;
|
|
167
|
+
checksumAlgorithm?: ChecksumAlgorithm;
|
|
168
|
+
resultToken?: string;
|
|
169
|
+
}
|
|
170
|
+
export interface WorkerHttpHandlerDownloadOptions extends HttpHandlerOptions {
|
|
171
|
+
downloadDataToFile?: DownloadDataToFile;
|
|
172
|
+
downloadStream?: DownloadStreamOptions;
|
|
173
|
+
}
|
|
174
|
+
export interface DownloadToFileResult {
|
|
175
|
+
statusCode: number;
|
|
176
|
+
headers: Record<string, string>;
|
|
177
|
+
bytesWritten: number;
|
|
178
|
+
checksum?: string;
|
|
179
|
+
errorBody?: Uint8Array;
|
|
180
|
+
}
|
|
181
|
+
export interface DownloadStreamResult {
|
|
182
|
+
rangeIndex: number;
|
|
183
|
+
buffer: ArrayBuffer;
|
|
184
|
+
byteLength: number;
|
|
185
|
+
statusCode: number;
|
|
186
|
+
headers: Record<string, string>;
|
|
187
|
+
checksum?: string;
|
|
188
|
+
errorBody?: Uint8Array;
|
|
189
|
+
}
|
|
190
|
+
export declare class WorkerHttpHandler {
|
|
191
|
+
private workers;
|
|
192
|
+
private inflightRequests;
|
|
193
|
+
private inflightDownloads;
|
|
194
|
+
private inflightStreamDownloads;
|
|
195
|
+
private nextRequestId;
|
|
196
|
+
private workerInflightCounts;
|
|
197
|
+
private workerThreadCount;
|
|
198
|
+
private maxConcurrentUploads;
|
|
199
|
+
private maxConcurrentDownloads;
|
|
200
|
+
private useODirect;
|
|
201
|
+
private logger;
|
|
202
|
+
private initialized;
|
|
203
|
+
private initPromise;
|
|
204
|
+
private fallbackHandler;
|
|
205
|
+
private completedDownloads;
|
|
206
|
+
private completedTransfers;
|
|
207
|
+
readonly metadata: {
|
|
208
|
+
handlerProtocol: string;
|
|
209
|
+
};
|
|
210
|
+
constructor(options?: {
|
|
211
|
+
workerThreadCount?: number;
|
|
212
|
+
maxConcurrentUploads?: number;
|
|
213
|
+
maxConcurrentDownloads?: number;
|
|
214
|
+
useODirect?: boolean;
|
|
215
|
+
logger?: Logger;
|
|
216
|
+
});
|
|
217
|
+
getDownloadResult(token: string):
|
|
218
|
+
| {
|
|
219
|
+
bytesWritten: number;
|
|
220
|
+
checksum?: string;
|
|
221
|
+
}
|
|
222
|
+
| undefined;
|
|
223
|
+
getStreamDownloadResult(token: string): DownloadStreamResult | undefined;
|
|
224
|
+
private resolveWorkerConfig;
|
|
225
|
+
private ensureInitialized;
|
|
226
|
+
private pickWorkerIndex;
|
|
227
|
+
private dispatchToWorker;
|
|
228
|
+
private dispatchDownloadToWorker;
|
|
229
|
+
private extractPartNumber;
|
|
230
|
+
returnBuffer(buffer: ArrayBuffer, workerIndex?: number): void;
|
|
231
|
+
handle(
|
|
232
|
+
request: HttpRequest,
|
|
233
|
+
options?: WorkerHttpHandlerOptions | WorkerHttpHandlerDownloadOptions,
|
|
234
|
+
): Promise<{
|
|
235
|
+
response: HttpResponse;
|
|
236
|
+
}>;
|
|
237
|
+
updateHttpClientConfig(_key: string, _value: unknown): void;
|
|
238
|
+
httpHandlerConfigs(): Record<string, unknown>;
|
|
239
|
+
destroy(): void;
|
|
240
|
+
}
|
|
241
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./http-request-worker";
|
package/package.json
CHANGED
|
@@ -1,6 +1,110 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/lib-transfer-manager",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "S3 Transfer Manager for AWS SDK JS v3",
|
|
5
|
+
"homepage": "https://github.com/aws/aws-sdk-js-v3/tree/main/preview/lib-transfer-manager",
|
|
6
|
+
"license": "Apache-2.0",
|
|
7
|
+
"author": {
|
|
8
|
+
"name": "AWS SDK for JavaScript Team",
|
|
9
|
+
"url": "https://aws.amazon.com/javascript/"
|
|
10
|
+
},
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "https://github.com/aws/aws-sdk-js-v3.git",
|
|
14
|
+
"directory": "preview/lib-transfer-manager"
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"./transfer-manager.d.ts",
|
|
18
|
+
"./transfer-manager.js",
|
|
19
|
+
"./worker.d.ts",
|
|
20
|
+
"./worker.js",
|
|
21
|
+
"dist-*/**"
|
|
22
|
+
],
|
|
23
|
+
"main": "./dist-cjs/index.js",
|
|
24
|
+
"module": "./dist-es/index.js",
|
|
25
|
+
"browser": {
|
|
26
|
+
"./dist-es/submodules/transfer-manager/index.js": "./dist-es/submodules/transfer-manager/index.browser.js"
|
|
27
|
+
},
|
|
28
|
+
"types": "./dist-types/index.d.ts",
|
|
29
|
+
"typesVersions": {
|
|
30
|
+
"<4.5": {
|
|
31
|
+
"dist-types/*": [
|
|
32
|
+
"dist-types/ts3.4/*"
|
|
33
|
+
],
|
|
34
|
+
"*": [
|
|
35
|
+
"dist-types/ts3.4/submodules/*/index.d.ts"
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"react-native": {
|
|
40
|
+
"./dist-es/submodules/transfer-manager/index.js": "./dist-es/submodules/transfer-manager/index.browser.js"
|
|
41
|
+
},
|
|
42
|
+
"exports": {
|
|
43
|
+
".": {
|
|
44
|
+
"types": "./dist-types/index.d.ts",
|
|
45
|
+
"module": "./dist-es/index.js",
|
|
46
|
+
"node": "./dist-cjs/index.js",
|
|
47
|
+
"import": "./dist-es/index.js",
|
|
48
|
+
"require": "./dist-cjs/index.js"
|
|
49
|
+
},
|
|
50
|
+
"./worker": {
|
|
51
|
+
"types": "./dist-types/submodules/worker/index.d.ts",
|
|
52
|
+
"module": "./dist-es/submodules/worker/index.js",
|
|
53
|
+
"node": "./dist-cjs/submodules/worker/index.js",
|
|
54
|
+
"import": "./dist-es/submodules/worker/index.js",
|
|
55
|
+
"require": "./dist-cjs/submodules/worker/index.js"
|
|
56
|
+
},
|
|
57
|
+
"./transfer-manager": {
|
|
58
|
+
"types": "./dist-types/submodules/transfer-manager/index.d.ts",
|
|
59
|
+
"react-native": "./dist-es/submodules/transfer-manager/index.browser.js",
|
|
60
|
+
"browser": "./dist-es/submodules/transfer-manager/index.browser.js",
|
|
61
|
+
"module": "./dist-es/submodules/transfer-manager/index.js",
|
|
62
|
+
"node": "./dist-cjs/submodules/transfer-manager/index.js",
|
|
63
|
+
"import": "./dist-es/submodules/transfer-manager/index.js",
|
|
64
|
+
"require": "./dist-cjs/submodules/transfer-manager/index.js"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"publishConfig": {
|
|
68
|
+
"tag": "preview"
|
|
69
|
+
},
|
|
70
|
+
"scripts": {
|
|
71
|
+
"build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
|
|
72
|
+
"build:cjs": "node ../../scripts/compilation/inline lib-transfer-manager",
|
|
73
|
+
"build:es": "premove dist-es && tsc -p tsconfig.es.json",
|
|
74
|
+
"build:include:deps": "yarn g:turbo run build -F=\"$npm_package_name\"",
|
|
75
|
+
"build:types": "premove dist-types && tsc -p tsconfig.types.json",
|
|
76
|
+
"build:types:downlevel": "downlevel-dts dist-types dist-types/ts3.4",
|
|
77
|
+
"clean": "premove dist-cjs dist-es dist-types",
|
|
78
|
+
"lint": "node ../../scripts/validation/submodules-linter",
|
|
79
|
+
"prebuild": "yarn lint",
|
|
80
|
+
"test": "yarn g:vitest run",
|
|
81
|
+
"test:watch": "yarn g:vitest watch",
|
|
82
|
+
"test:e2e": "yarn g:vitest run -c vitest.config.e2e.mts --mode development",
|
|
83
|
+
"test:e2e:watch": "yarn g:vitest watch -c vitest.config.e2e.mts",
|
|
84
|
+
"test:browser": "yarn g:vitest run -c vitest.config.browser.mts",
|
|
85
|
+
"test:browser:watch": "yarn g:vitest watch -c vitest.config.browser.mts"
|
|
86
|
+
},
|
|
87
|
+
"dependencies": {
|
|
88
|
+
"@aws-sdk/checksums": "^3.1001.3",
|
|
89
|
+
"@smithy/core": "^3.35.2",
|
|
90
|
+
"@smithy/node-http-handler": "^4.12.1",
|
|
91
|
+
"@smithy/types": "^4.19.0",
|
|
92
|
+
"tslib": "^2.6.2"
|
|
93
|
+
},
|
|
94
|
+
"devDependencies": {
|
|
95
|
+
"@aws-sdk/client-s3": "3.1152.0",
|
|
96
|
+
"@aws-sdk/xhr-http-handler": "3.1152.0",
|
|
97
|
+
"@tsconfig/recommended": "1.0.1",
|
|
98
|
+
"@types/node": "^20.14.8",
|
|
99
|
+
"concurrently": "7.0.0",
|
|
100
|
+
"downlevel-dts": "0.10.1",
|
|
101
|
+
"premove": "4.0.0",
|
|
102
|
+
"typescript": "~7.0.2"
|
|
103
|
+
},
|
|
104
|
+
"peerDependencies": {
|
|
105
|
+
"@aws-sdk/client-s3": "^3.1152.0"
|
|
106
|
+
},
|
|
107
|
+
"engines": {
|
|
108
|
+
"node": ">=20.0.0"
|
|
109
|
+
}
|
|
110
|
+
}
|
package/worker.d.ts
ADDED