@dimah-s3/server 1.4.0 → 1.4.2
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/dist/api/index.js +48 -36
- package/dist/api/index.js.map +1 -1
- package/dist/api/routes/multipart/init.d.ts.map +1 -1
- package/dist/helpers/finalize-confirmed.d.ts +2 -2
- package/dist/helpers/finalize-confirmed.d.ts.map +1 -1
- package/dist/index.js +48 -36
- package/dist/index.js.map +1 -1
- package/dist/plugins.js +48 -36
- package/dist/plugins.js.map +1 -1
- package/package.json +6 -6
|
@@ -12,8 +12,8 @@ export type FinalizeConfirmedInput = {
|
|
|
12
12
|
};
|
|
13
13
|
/**
|
|
14
14
|
* HeadObject constraints, `onConfirmed`, then compensating `DeleteObject`
|
|
15
|
-
* (and `previousKey` cleanup) so a thrown lifecycle hook cannot
|
|
16
|
-
* orphan object.
|
|
15
|
+
* (and `previousKey` cleanup) so a thrown check or lifecycle hook cannot
|
|
16
|
+
* leave an orphan object.
|
|
17
17
|
*/
|
|
18
18
|
export declare function finalizeConfirmedObject(client: S3Client, bucket: string, key: string, input: FinalizeConfirmedInput): Promise<ConfirmedObjectResponse>;
|
|
19
19
|
//# sourceMappingURL=finalize-confirmed.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finalize-confirmed.d.ts","sourceRoot":"","sources":["../../src/helpers/finalize-confirmed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAU5E,OAAO,KAAK,EACV,WAAW,EACX,qBAAqB,EACrB,mBAAmB,EAEpB,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,KAAK,EAAE,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;IAC3C,MAAM,EAAE,mBAAmB,CAAC;IAC5B,IAAI,EAAE,uBAAuB,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,GAAG,CAAC,EAAE,WAAW,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,uBAAuB,CAAC,
|
|
1
|
+
{"version":3,"file":"finalize-confirmed.d.ts","sourceRoot":"","sources":["../../src/helpers/finalize-confirmed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAU5E,OAAO,KAAK,EACV,WAAW,EACX,qBAAqB,EACrB,mBAAmB,EAEpB,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,KAAK,EAAE,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;IAC3C,MAAM,EAAE,mBAAmB,CAAC;IAC5B,IAAI,EAAE,uBAAuB,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,GAAG,CAAC,EAAE,WAAW,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,uBAAuB,CAAC,CAwDlC"}
|
package/dist/index.js
CHANGED
|
@@ -516,33 +516,29 @@ function listedPartsByteSize(parts, excludePartNumber) {
|
|
|
516
516
|
}
|
|
517
517
|
async function finalizeConfirmedObject(client, bucket, key, input) {
|
|
518
518
|
const { config, route: route2, stored, head, uploadId, acl } = input;
|
|
519
|
-
const contentLength = requireContentLength(head);
|
|
520
|
-
const fileName = resolveStoredFileName(head.ContentDisposition, key);
|
|
521
519
|
const rawMetadata = head.Metadata ?? {};
|
|
520
|
+
const fileName = resolveStoredFileName(head.ContentDisposition, key);
|
|
521
|
+
let context;
|
|
522
522
|
try {
|
|
523
|
+
const contentLength = requireContentLength(head);
|
|
523
524
|
assertVerifiedConstraints(route2.upload, {
|
|
524
525
|
fileName,
|
|
525
526
|
contentType: head.ContentType,
|
|
526
527
|
contentLength
|
|
527
528
|
});
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
versionId: head.VersionId,
|
|
542
|
-
lastModified: head.LastModified?.toISOString(),
|
|
543
|
-
uploadId
|
|
544
|
-
};
|
|
545
|
-
try {
|
|
529
|
+
const metadata = stripPreviousKeyMeta(rawMetadata);
|
|
530
|
+
context = {
|
|
531
|
+
...stored,
|
|
532
|
+
contentType: head.ContentType,
|
|
533
|
+
contentLength,
|
|
534
|
+
eTag: head.ETag?.replace(/"/g, ""),
|
|
535
|
+
metadata,
|
|
536
|
+
acl,
|
|
537
|
+
fileName,
|
|
538
|
+
versionId: head.VersionId,
|
|
539
|
+
lastModified: head.LastModified?.toISOString(),
|
|
540
|
+
uploadId
|
|
541
|
+
};
|
|
546
542
|
await runLifecycleHook(route2.upload.onConfirmed, context, config);
|
|
547
543
|
} catch (err) {
|
|
548
544
|
await deleteObjectBestEffort(client, bucket, key);
|
|
@@ -1084,23 +1080,39 @@ async function handleMultipartInit(config, input, request) {
|
|
|
1084
1080
|
if (!UploadId) {
|
|
1085
1081
|
throw errors.internalError();
|
|
1086
1082
|
}
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1083
|
+
try {
|
|
1084
|
+
await runLifecycleHook(
|
|
1085
|
+
route2.upload.multipart.onInit,
|
|
1086
|
+
{
|
|
1087
|
+
...stored,
|
|
1088
|
+
uploadId: UploadId,
|
|
1089
|
+
file: {
|
|
1090
|
+
name: fileName,
|
|
1091
|
+
size: fileSize,
|
|
1092
|
+
type: input.contentType
|
|
1093
|
+
},
|
|
1094
|
+
metadata,
|
|
1095
|
+
clientMetadata: input.metadata,
|
|
1096
|
+
acl,
|
|
1097
|
+
replace: route2.upload.replace
|
|
1096
1098
|
},
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1099
|
+
config
|
|
1100
|
+
);
|
|
1101
|
+
} catch (err) {
|
|
1102
|
+
await abortMultipartBestEffort(route2.client, bucket, key, UploadId);
|
|
1103
|
+
try {
|
|
1104
|
+
await runLifecycleHook(
|
|
1105
|
+
route2.upload.multipart.onAbort,
|
|
1106
|
+
{
|
|
1107
|
+
...stored,
|
|
1108
|
+
uploadId: UploadId
|
|
1109
|
+
},
|
|
1110
|
+
config
|
|
1111
|
+
);
|
|
1112
|
+
} catch {
|
|
1113
|
+
}
|
|
1114
|
+
throw err;
|
|
1115
|
+
}
|
|
1104
1116
|
return { bucket, key, uploadId: UploadId };
|
|
1105
1117
|
}
|
|
1106
1118
|
var multipartInit = createS3Endpoint(
|