@lossless.org/client 2.0.0 → 2.2.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.
@@ -1,7 +1,7 @@
1
1
  import * as plugins from './plugins.js';
2
2
  import { ExactUploadError } from './classes.exactuploaderror.js';
3
3
  import { beginExactUploadCapabilityOperation, beginExactUploadProbeOperation, mintExactUploadCapability, } from './internal.exactupload.capability.js';
4
- import { planMultipartUpload } from './internal.multipart.planner.js';
4
+ import { planBoundedMultipartUpload, planMultipartUpload, } from './internal.multipart.planner.js';
5
5
  import { consumeExactMultipartStream, MultipartStreamConsumptionError, } from './internal.multipart.stream.js';
6
6
  class ExactUploadProbeSemanticError extends Error {
7
7
  reason;
@@ -780,16 +780,60 @@ const abortMultipartUpload = async (operationArg, keyArg, uploadIdArg) => {
780
780
  settlement: cleanupResult.settlement,
781
781
  };
782
782
  };
783
+ /**
784
+ * Plans the upload from its declared length, or from the maximum of a source
785
+ * of undeclared length, and names that length for failure states.
786
+ */
787
+ const planExactUpload = (optionsArg) => {
788
+ const declaresLength = optionsArg.contentLength !== undefined;
789
+ if (declaresLength === (optionsArg.maxContentLength !== undefined)) {
790
+ throw new TypeError('Exactly one of contentLength and maxContentLength must be given.');
791
+ }
792
+ if (declaresLength) {
793
+ return {
794
+ plan: planMultipartUpload({
795
+ objectSize: optionsArg.contentLength,
796
+ requestedPartSize: optionsArg.requestedPartSize,
797
+ requestedConcurrency: optionsArg.requestedConcurrency,
798
+ }),
799
+ lengthState: {
800
+ expectedContentLength: optionsArg.contentLength,
801
+ },
802
+ };
803
+ }
804
+ return {
805
+ plan: planBoundedMultipartUpload({
806
+ maxObjectSize: optionsArg.maxContentLength,
807
+ requestedPartSize: optionsArg.requestedPartSize,
808
+ requestedConcurrency: optionsArg.requestedConcurrency,
809
+ }),
810
+ lengthState: {
811
+ maxContentLength: optionsArg.maxContentLength,
812
+ },
813
+ };
814
+ };
815
+ const sendConditionalZeroPut = (operationArg, optionsArg, contentTypeArg, onAttemptArg) => {
816
+ return sendOperationCommand(operationArg, (signalArg) => {
817
+ onAttemptArg();
818
+ return operationArg.client.send(new plugins.s3.PutObjectCommand({
819
+ Bucket: operationArg.bucketName,
820
+ Key: optionsArg.path,
821
+ Body: new Uint8Array(0),
822
+ ContentLength: 0,
823
+ Metadata: optionsArg.nativeMetadata,
824
+ ContentType: contentTypeArg,
825
+ IfNoneMatch: '*',
826
+ }), {
827
+ abortSignal: signalArg,
828
+ });
829
+ });
830
+ };
783
831
  export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
784
832
  if (typeof optionsArg.path !== 'string' || optionsArg.path.length === 0) {
785
833
  throw new TypeError('path must be a non-empty string.');
786
834
  }
787
835
  const nativeObjectProperties = snapshotNativeObjectProperties(optionsArg.nativeObjectProperties);
788
- const plan = planMultipartUpload({
789
- objectSize: optionsArg.contentLength,
790
- requestedPartSize: optionsArg.requestedPartSize,
791
- requestedConcurrency: optionsArg.requestedConcurrency,
792
- });
836
+ const { plan, lengthState } = planExactUpload(optionsArg);
793
837
  let operation;
794
838
  try {
795
839
  operation = beginExactUploadCapabilityOperation(bucketRefArg, optionsArg.capability, optionsArg.signal);
@@ -798,7 +842,7 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
798
842
  throw new ExactUploadError({
799
843
  phase: 'capability',
800
844
  destinationPath: optionsArg.path,
801
- expectedContentLength: optionsArg.contentLength,
845
+ ...lengthState,
802
846
  destinationPublication: 'not-published',
803
847
  multipartCleanup: {
804
848
  status: 'not-required',
@@ -814,7 +858,7 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
814
858
  throw new ExactUploadError({
815
859
  phase: 'source',
816
860
  destinationPath: optionsArg.path,
817
- expectedContentLength: optionsArg.contentLength,
861
+ ...lengthState,
818
862
  destinationPublication: 'not-published',
819
863
  multipartCleanup: {
820
864
  status: 'not-required',
@@ -846,7 +890,7 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
846
890
  throw new ExactUploadError({
847
891
  phase: 'source',
848
892
  destinationPath: optionsArg.path,
849
- expectedContentLength: optionsArg.contentLength,
893
+ ...lengthState,
850
894
  destinationPublication: 'not-published',
851
895
  multipartCleanup: {
852
896
  status: 'not-required',
@@ -854,19 +898,8 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
854
898
  }, error);
855
899
  }
856
900
  try {
857
- const putOutput = await sendOperationCommand(operation, (signalArg) => {
901
+ const putOutput = await sendConditionalZeroPut(operation, optionsArg, nativeObjectProperties?.contentType, () => {
858
902
  putRequestAttempted = true;
859
- return operation.client.send(new plugins.s3.PutObjectCommand({
860
- Bucket: operation.bucketName,
861
- Key: optionsArg.path,
862
- Body: new Uint8Array(0),
863
- ContentLength: 0,
864
- Metadata: optionsArg.nativeMetadata,
865
- ContentType: nativeObjectProperties?.contentType,
866
- IfNoneMatch: '*',
867
- }), {
868
- abortSignal: signalArg,
869
- });
870
903
  });
871
904
  return {
872
905
  destinationPath: optionsArg.path,
@@ -885,7 +918,7 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
885
918
  throw new ExactUploadError({
886
919
  phase: 'put-zero',
887
920
  destinationPath: optionsArg.path,
888
- expectedContentLength: optionsArg.contentLength,
921
+ ...lengthState,
889
922
  destinationPublication: putRequestAttempted &&
890
923
  !isDefinitiveConditionalWriteRejection(error)
891
924
  ? 'ambiguous'
@@ -907,26 +940,52 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
907
940
  }
908
941
  }
909
942
  }
910
- let phase = 'create-multipart';
943
+ const bounded = plan.classification === 'bounded';
944
+ let phase = bounded ? 'source' : 'create-multipart';
911
945
  let uploadId;
912
946
  let createRequestAttempted = false;
947
+ let createFailed = false;
948
+ let createSettled = false;
949
+ let zeroPutAttempted = false;
913
950
  let completeRequestAttempted = false;
914
951
  let operationFinishSettlement;
915
952
  let detachedStreamError;
916
- try {
917
- const createOutput = await sendOperationCommand(operation, (signalArg) => {
953
+ let multipartUploadCreation;
954
+ // A source of undeclared length creates the multipart upload with its first
955
+ // part, so an empty source never leaves one behind.
956
+ const ensureMultipartUpload = () => {
957
+ multipartUploadCreation ??= sendOperationCommand(operation, (signalArg) => {
918
958
  createRequestAttempted = true;
919
- return operation.client.send(new plugins.s3.CreateMultipartUploadCommand({
959
+ return operation.client
960
+ .send(new plugins.s3.CreateMultipartUploadCommand({
920
961
  Bucket: operation.bucketName,
921
962
  Key: optionsArg.path,
922
963
  Metadata: optionsArg.nativeMetadata,
923
964
  ContentType: nativeObjectProperties?.contentType,
924
965
  }), {
925
966
  abortSignal: signalArg,
967
+ })
968
+ .then((createOutputArg) => {
969
+ // A create that ignored cancellation still owns its upload, so
970
+ // deferred cleanup aborts it by this id.
971
+ uploadId = getOptionalNonEmptyString(createOutputArg.UploadId);
972
+ return createOutputArg;
926
973
  });
974
+ }).then((createOutputArg) => {
975
+ createSettled = true;
976
+ return requireNonEmptyString(createOutputArg.UploadId, 'CreateMultipartUpload UploadId');
977
+ }, (error) => {
978
+ createSettled = true;
979
+ createFailed = true;
980
+ throw error;
927
981
  });
928
- uploadId = requireNonEmptyString(createOutput.UploadId, 'CreateMultipartUpload UploadId');
929
- phase = 'source';
982
+ return multipartUploadCreation;
983
+ };
984
+ try {
985
+ if (!bounded) {
986
+ await ensureMultipartUpload();
987
+ phase = 'source';
988
+ }
930
989
  const completedParts = [];
931
990
  let consumptionResult;
932
991
  try {
@@ -936,11 +995,13 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
936
995
  signal: operation.signal,
937
996
  failureSettlementTimeoutMs: optionsArg.failureSettlementTimeoutMs,
938
997
  async onPart(partArg) {
998
+ operation.assertCurrent();
999
+ const partUploadId = await ensureMultipartUpload();
939
1000
  operation.assertCurrent();
940
1001
  const uploadPartOutput = await operation.client.send(new plugins.s3.UploadPartCommand({
941
1002
  Bucket: operation.bucketName,
942
1003
  Key: optionsArg.path,
943
- UploadId: uploadId,
1004
+ UploadId: partUploadId,
944
1005
  PartNumber: partArg.partNumber,
945
1006
  Body: partArg.data,
946
1007
  ContentLength: partArg.data.byteLength,
@@ -957,8 +1018,15 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
957
1018
  }
958
1019
  catch (error) {
959
1020
  if (error instanceof MultipartStreamConsumptionError &&
960
- error.state.kind === 'part-callback') {
961
- phase = 'upload-part';
1021
+ (error.state.kind === 'part-callback' || error.state.kind === 'aborted')) {
1022
+ // A source of undeclared length creates its upload with the first
1023
+ // part, so a failed or still outstanding create owns the failure.
1024
+ if (createFailed || (multipartUploadCreation && !createSettled)) {
1025
+ phase = 'create-multipart';
1026
+ }
1027
+ else if (error.state.kind === 'part-callback') {
1028
+ phase = 'upload-part';
1029
+ }
962
1030
  }
963
1031
  if (error instanceof MultipartStreamConsumptionError &&
964
1032
  (error.state.cleanup.callbacks === 'detached' ||
@@ -967,25 +1035,42 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
967
1035
  }
968
1036
  throw error;
969
1037
  }
1038
+ if (!multipartUploadCreation) {
1039
+ // Only an empty source of undeclared length reaches this point.
1040
+ phase = 'put-zero';
1041
+ const putOutput = await sendConditionalZeroPut(operation, optionsArg, nativeObjectProperties?.contentType, () => {
1042
+ zeroPutAttempted = true;
1043
+ });
1044
+ return {
1045
+ destinationPath: optionsArg.path,
1046
+ contentLength: 0,
1047
+ etag: requireNonEmptyString(putOutput.ETag, 'PutObject ETag'),
1048
+ versionId: getOptionalNonEmptyString(putOutput.VersionId),
1049
+ partCount: 0,
1050
+ peakBufferedBytes: consumptionResult.peakBufferedBytes,
1051
+ maximumBufferedBytes: consumptionResult.maximumBufferedBytes,
1052
+ };
1053
+ }
1054
+ const completeUploadId = await multipartUploadCreation;
970
1055
  phase = 'complete-multipart';
971
1056
  const completeOutput = await sendOperationCommand(operation, (signalArg) => {
972
1057
  completeRequestAttempted = true;
973
1058
  return operation.client.send(new plugins.s3.CompleteMultipartUploadCommand({
974
1059
  Bucket: operation.bucketName,
975
1060
  Key: optionsArg.path,
976
- UploadId: uploadId,
1061
+ UploadId: completeUploadId,
977
1062
  MultipartUpload: {
978
1063
  Parts: completedParts,
979
1064
  },
980
1065
  IfNoneMatch: '*',
981
- MpuObjectSize: optionsArg.contentLength,
1066
+ MpuObjectSize: consumptionResult.bytesConsumed,
982
1067
  }), {
983
1068
  abortSignal: signalArg,
984
1069
  });
985
1070
  });
986
1071
  return {
987
1072
  destinationPath: optionsArg.path,
988
- contentLength: optionsArg.contentLength,
1073
+ contentLength: consumptionResult.bytesConsumed,
989
1074
  etag: requireNonEmptyString(completeOutput.ETag, 'CompleteMultipartUpload ETag'),
990
1075
  versionId: getOptionalNonEmptyString(completeOutput.VersionId),
991
1076
  partCount: completedParts.length,
@@ -996,47 +1081,42 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
996
1081
  catch (error) {
997
1082
  let multipartCleanup;
998
1083
  const primaryProviderSettlement = getDetachedOperationSendSettlement(operation.signal);
999
- if (uploadId &&
1084
+ // Aborts the multipart upload once the given work settles. A create that
1085
+ // was still in flight may only report its UploadId by then.
1086
+ const abortAfterSettlement = (settlementArg) => settlementArg
1087
+ .then(async () => {
1088
+ await getDetachedOperationSendSettlement(operation.signal);
1089
+ if (!uploadId) {
1090
+ return;
1091
+ }
1092
+ try {
1093
+ operation.assertLifecycleCurrent();
1094
+ const abortResult = await abortMultipartUpload(operation, optionsArg.path, uploadId);
1095
+ await abortResult.settlement;
1096
+ }
1097
+ catch {
1098
+ // Lifecycle close makes deferred cleanup indeterminate.
1099
+ }
1100
+ })
1101
+ .then(() => undefined, () => undefined);
1102
+ if ((uploadId || createRequestAttempted) &&
1000
1103
  detachedStreamError?.state.cleanup.callbacks === 'detached') {
1001
1104
  multipartCleanup = {
1002
1105
  status: 'deferred',
1003
1106
  };
1004
- const callbackGatedCleanup = detachedStreamError.callbackSettlement
1005
- .then(async () => {
1006
- try {
1007
- operation.assertLifecycleCurrent();
1008
- const abortResult = await abortMultipartUpload(operation, optionsArg.path, uploadId);
1009
- await abortResult.settlement;
1010
- }
1011
- catch {
1012
- // Lifecycle close makes deferred cleanup indeterminate.
1013
- }
1014
- })
1015
- .then(() => undefined, () => undefined);
1016
1107
  operationFinishSettlement = Promise.allSettled([
1017
- callbackGatedCleanup,
1108
+ abortAfterSettlement(detachedStreamError.callbackSettlement),
1018
1109
  detachedStreamError.ownedSettlement,
1019
1110
  ]).then(() => undefined);
1020
1111
  }
1021
- else if (uploadId && primaryProviderSettlement) {
1112
+ else if ((uploadId || createRequestAttempted) &&
1113
+ primaryProviderSettlement) {
1022
1114
  multipartCleanup = {
1023
1115
  status: 'deferred',
1024
1116
  };
1025
- const providerGatedCleanup = primaryProviderSettlement
1026
- .then(async () => {
1027
- try {
1028
- operation.assertLifecycleCurrent();
1029
- const abortResult = await abortMultipartUpload(operation, optionsArg.path, uploadId);
1030
- await abortResult.settlement;
1031
- }
1032
- catch {
1033
- // Lifecycle close makes deferred cleanup indeterminate.
1034
- }
1035
- })
1036
- .then(() => undefined, () => undefined);
1037
1117
  operationFinishSettlement = Promise.allSettled([
1038
1118
  primaryProviderSettlement,
1039
- providerGatedCleanup,
1119
+ abortAfterSettlement(primaryProviderSettlement),
1040
1120
  ]).then(() => undefined);
1041
1121
  }
1042
1122
  else if (uploadId) {
@@ -1048,18 +1128,9 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
1048
1128
  }
1049
1129
  else if (createRequestAttempted) {
1050
1130
  multipartCleanup = {
1051
- ...(primaryProviderSettlement
1052
- ? {
1053
- status: 'deferred',
1054
- }
1055
- : {
1056
- status: 'abort-failed',
1057
- cause: new Error('The multipart upload could not be aborted because no UploadId was returned.'),
1058
- }),
1131
+ status: 'abort-failed',
1132
+ cause: new Error('The multipart upload could not be aborted because no UploadId was returned.'),
1059
1133
  };
1060
- if (primaryProviderSettlement) {
1061
- operationFinishSettlement = primaryProviderSettlement;
1062
- }
1063
1134
  }
1064
1135
  else {
1065
1136
  multipartCleanup = {
@@ -1080,9 +1151,9 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
1080
1151
  throw new ExactUploadError({
1081
1152
  phase,
1082
1153
  destinationPath: optionsArg.path,
1083
- expectedContentLength: optionsArg.contentLength,
1084
- destinationPublication: phase === 'complete-multipart' &&
1085
- completeRequestAttempted &&
1154
+ ...lengthState,
1155
+ destinationPublication: ((phase === 'complete-multipart' && completeRequestAttempted) ||
1156
+ (phase === 'put-zero' && zeroPutAttempted)) &&
1086
1157
  !isDefinitiveConditionalWriteRejection(error)
1087
1158
  ? 'ambiguous'
1088
1159
  : 'not-published',
@@ -1101,4 +1172,4 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
1101
1172
  }
1102
1173
  }
1103
1174
  };
1104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwuZXhhY3R1cGxvYWQub3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL29iamVjdHN0b3JhZ2UvaW50ZXJuYWwuZXhhY3R1cGxvYWQub3BlcmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQVVqRSxPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLDhCQUE4QixFQUM5Qix5QkFBeUIsR0FFMUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLCtCQUErQixHQUNoQyxNQUFNLGdDQUFnQyxDQUFDO0FBK0J4QyxNQUFNLDZCQUE4QixTQUFRLEtBQUs7SUFFN0IsTUFBTTtJQUR4QixZQUNrQixNQUdmO1FBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3NCQUxFLE1BQU07UUFNdEIsSUFBSSxDQUFDLElBQUksR0FBRywrQkFBK0IsQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQztBQUNoQyxNQUFNLCtCQUErQixHQUFHLEdBQUcsQ0FBQztBQUM1QyxNQUFNLDZCQUE2QixHQUFHLEVBQUUsQ0FBQztBQUN6QyxNQUFNLDBCQUEwQixHQUFHLEdBQUcsQ0FBQztBQUN2QyxNQUFNLGFBQWEsR0FBRztJQUNwQixtQkFBbUIsRUFBRSxpQkFBaUI7Q0FDdkMsQ0FBQztBQUVGLE1BQU0sOEJBQThCLEdBQUcsQ0FDckMsUUFBOEQsRUFDUixFQUFFO0lBQ3hELElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUNFLFFBQVEsS0FBSyxJQUFJ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
1175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwuZXhhY3R1cGxvYWQub3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL29iamVjdHN0b3JhZ2UvaW50ZXJuYWwuZXhhY3R1cGxvYWQub3BlcmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQVVqRSxPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLDhCQUE4QixFQUM5Qix5QkFBeUIsR0FFMUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLG1CQUFtQixHQUNwQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0IsK0JBQStCLEdBQ2hDLE1BQU0sZ0NBQWdDLENBQUM7QUErQnhDLE1BQU0sNkJBQThCLFNBQVEsS0FBSztJQUU3QixNQUFNO0lBRHhCLFlBQ2tCLE1BR2Y7UUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7c0JBTEUsTUFBTTtRQU10QixJQUFJLENBQUMsSUFBSSxHQUFHLCtCQUErQixDQUFDO0lBQzlDLENBQUM7Q0FDRjtBQUVELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDO0FBQ2hDLE1BQU0sK0JBQStCLEdBQUcsR0FBRyxDQUFDO0FBQzVDLE1BQU0sNkJBQTZCLEdBQUcsRUFBRSxDQUFDO0FBQ3pDLE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxDQUFDO0FBQ3ZDLE1BQU0sYUFBYSxHQUFHO0lBQ3BCLG1CQUFtQixFQUFFLGlCQUFpQjtDQUN2QyxDQUFDO0FBRUYsTUFBTSw4QkFBOEIsR0FBRyxDQUNyQyxRQUE4RCxFQUNSLEVBQUU7SUFDeEQsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDM0IsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQ0Us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
@@ -1,8 +1,14 @@
1
- import type { IMultipartPlanningOptions, TMultipartUploadPlan } from './internal.multipart.types.js';
1
+ import type { IMultipartBoundedPlanningOptions, IMultipartBoundedUploadPlan, IMultipartPlanningOptions, TMultipartDeclaredUploadPlan } from './internal.multipart.types.js';
2
2
  export declare const MULTIPART_MIN_PART_SIZE: number;
3
3
  export declare const MULTIPART_MAX_PART_SIZE: number;
4
4
  export declare const MULTIPART_MAX_PART_COUNT = 10000;
5
5
  export declare const MULTIPART_MAX_OBJECT_SIZE: number;
6
6
  export declare const MULTIPART_DEFAULT_CONCURRENCY = 1;
7
7
  export declare const MULTIPART_MAX_CONCURRENCY = 32;
8
- export declare const planMultipartUpload: (optionsArg: IMultipartPlanningOptions) => TMultipartUploadPlan;
8
+ export declare const planMultipartUpload: (optionsArg: IMultipartPlanningOptions) => TMultipartDeclaredUploadPlan;
9
+ /**
10
+ * Plans an upload of undeclared length that must not exceed
11
+ * `maxObjectSize`. The part size grows with the maximum so that the largest
12
+ * allowed source still fits into the multipart part limit.
13
+ */
14
+ export declare const planBoundedMultipartUpload: (optionsArg: IMultipartBoundedPlanningOptions) => IMultipartBoundedUploadPlan;