@remotion/lambda 4.0.201 → 4.0.204

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.
Files changed (133) hide show
  1. package/dist/api/bucket-exists.js +6 -2
  2. package/dist/api/clean-items.d.ts +2 -1
  3. package/dist/api/clean-items.js +2 -1
  4. package/dist/api/create-bucket.js +5 -5
  5. package/dist/api/delete-render.d.ts +2 -0
  6. package/dist/api/delete-render.js +6 -0
  7. package/dist/api/delete-site.d.ts +11 -5
  8. package/dist/api/delete-site.js +7 -1
  9. package/dist/api/deploy-site.d.ts +5 -3
  10. package/dist/api/deploy-site.js +7 -2
  11. package/dist/api/download-media.d.ts +2 -0
  12. package/dist/api/download-media.js +4 -1
  13. package/dist/api/get-aws-client.d.ts +2 -1
  14. package/dist/api/get-aws-client.js +2 -1
  15. package/dist/api/get-buckets.js +11 -3
  16. package/dist/api/get-compositions-on-lambda.d.ts +2 -1
  17. package/dist/api/get-compositions-on-lambda.js +3 -1
  18. package/dist/api/get-or-create-bucket.js +1 -0
  19. package/dist/api/get-render-progress.d.ts +1 -0
  20. package/dist/api/get-sites.d.ts +9 -4
  21. package/dist/api/get-sites.js +15 -5
  22. package/dist/api/make-lambda-payload.d.ts +4 -3
  23. package/dist/api/make-lambda-payload.js +9 -4
  24. package/dist/api/presign-url.d.ts +8 -3
  25. package/dist/api/presign-url.js +26 -12
  26. package/dist/api/render-media-on-lambda.d.ts +1 -0
  27. package/dist/api/render-media-on-lambda.js +2 -1
  28. package/dist/api/render-still-on-lambda.d.ts +1 -0
  29. package/dist/api/render-still-on-lambda.js +2 -1
  30. package/dist/api/upload-dir.d.ts +2 -1
  31. package/dist/api/upload-dir.js +2 -2
  32. package/dist/cli/args.d.ts +1 -0
  33. package/dist/cli/commands/render/render.js +3 -1
  34. package/dist/cli/commands/sites/create.js +3 -1
  35. package/dist/cli/commands/sites/rm.js +1 -0
  36. package/dist/cli/commands/sites/rmall.js +1 -0
  37. package/dist/cli/commands/still.d.ts +6 -1
  38. package/dist/cli/commands/still.js +2 -1
  39. package/dist/cli/index.js +6 -1
  40. package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +1 -4
  41. package/dist/functions/helpers/cleanup-props.d.ts +2 -1
  42. package/dist/functions/helpers/cleanup-props.js +3 -1
  43. package/dist/functions/helpers/expected-out-name.d.ts +1 -1
  44. package/dist/functions/helpers/find-output-file-in-bucket.d.ts +2 -1
  45. package/dist/functions/helpers/find-output-file-in-bucket.js +2 -1
  46. package/dist/functions/helpers/get-browser-instance.d.ts +3 -2
  47. package/dist/functions/helpers/get-browser-instance.js +3 -4
  48. package/dist/functions/helpers/get-current-region.d.ts +1 -1
  49. package/dist/functions/helpers/get-custom-out-name.d.ts +1 -1
  50. package/dist/functions/helpers/get-overall-progress-s3.d.ts +2 -1
  51. package/dist/functions/helpers/get-overall-progress-s3.js +2 -1
  52. package/dist/functions/helpers/get-progress.d.ts +2 -1
  53. package/dist/functions/helpers/get-progress.js +2 -1
  54. package/dist/functions/helpers/io.d.ts +3 -33
  55. package/dist/functions/helpers/io.js +3 -104
  56. package/dist/functions/helpers/merge-chunks.d.ts +1 -0
  57. package/dist/functions/helpers/merge-chunks.js +2 -0
  58. package/dist/functions/helpers/overall-render-progress.d.ts +2 -1
  59. package/dist/functions/helpers/overall-render-progress.js +2 -1
  60. package/dist/functions/helpers/print-cloudwatch-helper.d.ts +1 -1
  61. package/dist/functions/helpers/print-cloudwatch-helper.js +3 -3
  62. package/dist/functions/helpers/read-with-progress.d.ts +2 -1
  63. package/dist/functions/helpers/read-with-progress.js +2 -2
  64. package/dist/functions/helpers/write-lambda-error.d.ts +2 -3
  65. package/dist/functions/helpers/write-lambda-error.js +3 -2
  66. package/dist/functions/launch.js +8 -0
  67. package/dist/functions/progress.js +1 -0
  68. package/dist/functions/provider-implementation.d.ts +0 -0
  69. package/dist/functions/provider-implementation.js +1 -0
  70. package/dist/functions/renderer.js +2 -0
  71. package/dist/functions/start.js +3 -0
  72. package/dist/functions/still.js +6 -0
  73. package/dist/index.d.ts +2 -2
  74. package/dist/internals.d.ts +11 -9
  75. package/dist/io/delete-file.js +2 -2
  76. package/dist/io/head-file.js +6 -2
  77. package/dist/io/list-objects.js +12 -3
  78. package/dist/io/read-file.d.ts +2 -1
  79. package/dist/io/read-file.js +6 -2
  80. package/dist/io/write-file.js +6 -2
  81. package/dist/shared/aws-clients.js +15 -2
  82. package/dist/shared/cleanup-serialized-input-props.d.ts +4 -2
  83. package/dist/shared/cleanup-serialized-input-props.js +4 -2
  84. package/dist/shared/compress-props.d.ts +8 -6
  85. package/dist/shared/compress-props.js +11 -14
  86. package/dist/shared/get-s3-client.d.ts +5 -1
  87. package/dist/shared/get-s3-client.js +2 -1
  88. package/dist/shared/get-service-client.d.ts +2 -1
  89. package/dist/shared/get-service-client.js +4 -2
  90. package/dist/shared/lifecycle-rules.d.ts +2 -1
  91. package/dist/shared/lifecycle-rules.js +17 -7
  92. package/package.json +11 -11
  93. package/remotionlambda-arm64.zip +0 -0
  94. package/dist/functions/helpers/check-if-render-exists.d.ts +0 -3
  95. package/dist/functions/helpers/check-if-render-exists.js +0 -15
  96. package/dist/functions/helpers/delete-chunks.d.ts +0 -9
  97. package/dist/functions/helpers/delete-chunks.js +0 -25
  98. package/dist/functions/helpers/get-cleanup-progress.d.ts +0 -10
  99. package/dist/functions/helpers/get-cleanup-progress.js +0 -35
  100. package/dist/functions/helpers/get-encoding-metadata.d.ts +0 -7
  101. package/dist/functions/helpers/get-encoding-metadata.js +0 -15
  102. package/dist/functions/helpers/get-encoding-progress-step-size.d.ts +0 -1
  103. package/dist/functions/helpers/get-encoding-progress-step-size.js +0 -7
  104. package/dist/functions/helpers/get-files-to-delete.d.ts +0 -10
  105. package/dist/functions/helpers/get-files-to-delete.js +0 -52
  106. package/dist/functions/helpers/get-final-encoding-status.d.ts +0 -6
  107. package/dist/functions/helpers/get-final-encoding-status.js +0 -18
  108. package/dist/functions/helpers/get-folder-size.d.ts +0 -1
  109. package/dist/functions/helpers/get-folder-size.js +0 -8
  110. package/dist/functions/helpers/get-lambdas-invoked-stats.d.ts +0 -8
  111. package/dist/functions/helpers/get-lambdas-invoked-stats.js +0 -14
  112. package/dist/functions/helpers/get-post-render-data.d.ts +0 -8
  113. package/dist/functions/helpers/get-post-render-data.js +0 -22
  114. package/dist/functions/helpers/get-render-metadata.d.ts +0 -8
  115. package/dist/functions/helpers/get-render-metadata.js +0 -17
  116. package/dist/functions/helpers/get-rendered-frames-progress.d.ts +0 -8
  117. package/dist/functions/helpers/get-rendered-frames-progress.js +0 -37
  118. package/dist/functions/helpers/get-time-to-finish.d.ts +0 -5
  119. package/dist/functions/helpers/get-time-to-finish.js +0 -13
  120. package/dist/functions/helpers/streaming-payloads.d.ts +0 -19
  121. package/dist/functions/helpers/streaming-payloads.js +0 -25
  122. package/dist/functions/helpers/write-post-render-data.d.ts +0 -9
  123. package/dist/functions/helpers/write-post-render-data.js +0 -18
  124. package/dist/functions/merge.d.ts +0 -9
  125. package/dist/functions/merge.js +0 -61
  126. package/dist/shared/chunk-progress.d.ts +0 -9
  127. package/dist/shared/chunk-progress.js +0 -2034
  128. package/dist/shared/parse-chunk-key.d.ts +0 -5
  129. package/dist/shared/parse-chunk-key.js +0 -15
  130. package/dist/shared/parse-lambda-initialized-key.d.ts +0 -5
  131. package/dist/shared/parse-lambda-initialized-key.js +0 -15
  132. package/dist/shared/serialize-props.d.ts +0 -14
  133. package/dist/shared/serialize-props.js +0 -36
@@ -1,111 +1,10 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.lambdaHeadCommand = exports.lambdaReadFile = exports.lambdaWriteFile = exports.lambdaDeleteFile = exports.lambdaLs = void 0;
3
+ exports.lambdaHeadCommand = void 0;
7
4
  const client_s3_1 = require("@aws-sdk/client-s3");
8
- const mime_types_1 = __importDefault(require("mime-types"));
9
- const aws_clients_1 = require("../../shared/aws-clients");
10
- const content_disposition_header_1 = require("../../shared/content-disposition-header");
11
- const lambdaLs = async ({ bucketName, prefix, region, expectedBucketOwner, continuationToken, }) => {
12
- var _a, _b, _c;
13
- try {
14
- const list = await (0, aws_clients_1.getS3Client)(region, null).send(new client_s3_1.ListObjectsV2Command({
15
- Bucket: bucketName,
16
- Prefix: prefix,
17
- ExpectedBucketOwner: expectedBucketOwner !== null && expectedBucketOwner !== void 0 ? expectedBucketOwner : undefined,
18
- ContinuationToken: continuationToken,
19
- }));
20
- if (list.NextContinuationToken) {
21
- return [
22
- ...((_a = list.Contents) !== null && _a !== void 0 ? _a : []),
23
- ...(await (0, exports.lambdaLs)({
24
- bucketName,
25
- prefix,
26
- expectedBucketOwner,
27
- region,
28
- continuationToken: list.NextContinuationToken,
29
- })),
30
- ];
31
- }
32
- return (_b = list.Contents) !== null && _b !== void 0 ? _b : [];
33
- }
34
- catch (err) {
35
- if (!expectedBucketOwner) {
36
- throw err;
37
- }
38
- // Prevent from accessing a foreign bucket, retry without ExpectedBucketOwner and see if it works. If it works then it's an owner mismatch.
39
- if ((_c = err.stack) === null || _c === void 0 ? void 0 : _c.includes('AccessDenied')) {
40
- await (0, aws_clients_1.getS3Client)(region, null).send(new client_s3_1.ListObjectsV2Command({
41
- Bucket: bucketName,
42
- Prefix: prefix,
43
- }));
44
- throw new Error(`Bucket owner mismatch: Expected the bucket ${bucketName} to be owned by you (AWS Account ID: ${expectedBucketOwner}) but it's not the case. Did you accidentially specify the wrong bucket?`);
45
- }
46
- throw err;
47
- }
48
- };
49
- exports.lambdaLs = lambdaLs;
50
- const lambdaDeleteFile = async ({ bucketName, key, region, customCredentials, }) => {
51
- await (0, aws_clients_1.getS3Client)(region, customCredentials).send(new client_s3_1.DeleteObjectCommand({
52
- Bucket: bucketName,
53
- Key: key,
54
- }));
55
- };
56
- exports.lambdaDeleteFile = lambdaDeleteFile;
57
- const tryLambdaWriteFile = async ({ bucketName, key, body, region, privacy, expectedBucketOwner, downloadBehavior, customCredentials, }) => {
58
- await (0, aws_clients_1.getS3Client)(region, customCredentials).send(new client_s3_1.PutObjectCommand({
59
- Bucket: bucketName,
60
- Key: key,
61
- Body: body,
62
- ACL: privacy === 'no-acl'
63
- ? undefined
64
- : privacy === 'private'
65
- ? 'private'
66
- : 'public-read',
67
- ExpectedBucketOwner: customCredentials
68
- ? undefined
69
- : expectedBucketOwner !== null && expectedBucketOwner !== void 0 ? expectedBucketOwner : undefined,
70
- ContentType: mime_types_1.default.lookup(key) || 'application/octet-stream',
71
- ContentDisposition: (0, content_disposition_header_1.getContentDispositionHeader)(downloadBehavior),
72
- }));
73
- };
74
- const lambdaWriteFile = async (params) => {
75
- var _a;
76
- const remainingRetries = (_a = params.retries) !== null && _a !== void 0 ? _a : 2;
77
- try {
78
- await tryLambdaWriteFile(params);
79
- }
80
- catch (err) {
81
- if (remainingRetries === 0) {
82
- throw err;
83
- }
84
- const backoff = 2 ** (2 - remainingRetries) * 2000;
85
- await new Promise((resolve) => {
86
- setTimeout(resolve, backoff);
87
- });
88
- console.warn('Failed to write file to Lambda:');
89
- console.warn(err);
90
- console.warn(`Retrying (${remainingRetries} retries remaining)...`);
91
- return (0, exports.lambdaWriteFile)({
92
- ...params,
93
- retries: remainingRetries - 1,
94
- });
95
- }
96
- };
97
- exports.lambdaWriteFile = lambdaWriteFile;
98
- const lambdaReadFile = async ({ bucketName, key, region, expectedBucketOwner, }) => {
99
- const { Body } = await (0, aws_clients_1.getS3Client)(region, null).send(new client_s3_1.GetObjectCommand({
100
- Bucket: bucketName,
101
- Key: key,
102
- ExpectedBucketOwner: expectedBucketOwner,
103
- }));
104
- return Body;
105
- };
106
- exports.lambdaReadFile = lambdaReadFile;
5
+ const get_s3_client_1 = require("../../shared/get-s3-client");
107
6
  const lambdaHeadCommand = async ({ bucketName, key, region, customCredentials, }) => {
108
- const head = await (0, aws_clients_1.getS3Client)(region, customCredentials).send(new client_s3_1.HeadObjectCommand({
7
+ const head = await (0, get_s3_client_1.getS3Client)(region, customCredentials).send(new client_s3_1.HeadObjectCommand({
109
8
  Bucket: bucketName,
110
9
  Key: key,
111
10
  }));
@@ -32,4 +32,5 @@ export declare const mergeChunksAndFinishRender: <Provider extends CloudProvider
32
32
  overallProgress: OverallProgressHelper<Provider>;
33
33
  startTime: number;
34
34
  providerSpecifics: ProviderSpecifics<Provider>;
35
+ forcePathStyle: boolean;
35
36
  }) => Promise<PostRenderData<Provider>>;
@@ -49,6 +49,7 @@ const mergeChunksAndFinishRender = async (options) => {
49
49
  expectedBucketOwner: options.expectedBucketOwner,
50
50
  downloadBehavior: options.downloadBehavior,
51
51
  customCredentials: options.customCredentials,
52
+ forcePathStyle: options.forcePathStyle,
52
53
  });
53
54
  writeToBucket.end();
54
55
  const errorExplanations = (0, inspect_errors_1.inspectErrors)({
@@ -58,6 +59,7 @@ const mergeChunksAndFinishRender = async (options) => {
58
59
  inputProps: options.inputProps,
59
60
  serializedResolvedProps: options.serializedResolvedProps,
60
61
  providerSpecifics: options.providerSpecifics,
62
+ forcePathStyle: options.forcePathStyle,
61
63
  });
62
64
  const { url: outputUrl } = (0, get_output_url_from_metadata_1.getOutputUrlFromMetadata)(options.renderMetadata, options.bucketName, options.customCredentials, options.providerSpecifics.getCurrentRegionInFunction());
63
65
  const postRenderData = (0, create_post_render_data_1.createPostRenderData)({
@@ -47,7 +47,7 @@ export type OverallProgressHelper<Provider extends CloudProvider> = {
47
47
  getReceivedArtifacts: () => ReceivedArtifact<Provider>[];
48
48
  };
49
49
  export declare const makeInitialOverallRenderProgress: <Provider extends CloudProvider<string, Record<string, unknown>>>(timeoutTimestamp: number) => OverallRenderProgress<Provider>;
50
- export declare const makeOverallRenderProgress: <Provider extends CloudProvider<string, Record<string, unknown>>>({ renderId, bucketName, expectedBucketOwner, region, timeoutTimestamp, logLevel, providerSpecifics, }: {
50
+ export declare const makeOverallRenderProgress: <Provider extends CloudProvider<string, Record<string, unknown>>>({ renderId, bucketName, expectedBucketOwner, region, timeoutTimestamp, logLevel, providerSpecifics, forcePathStyle, }: {
51
51
  renderId: string;
52
52
  bucketName: string;
53
53
  expectedBucketOwner: string;
@@ -55,4 +55,5 @@ export declare const makeOverallRenderProgress: <Provider extends CloudProvider<
55
55
  timeoutTimestamp: number;
56
56
  logLevel: LogLevel;
57
57
  providerSpecifics: ProviderSpecifics<Provider>;
58
+ forcePathStyle: boolean;
58
59
  }) => OverallProgressHelper<Provider>;
@@ -26,7 +26,7 @@ const makeInitialOverallRenderProgress = (timeoutTimestamp) => {
26
26
  };
27
27
  };
28
28
  exports.makeInitialOverallRenderProgress = makeInitialOverallRenderProgress;
29
- const makeOverallRenderProgress = ({ renderId, bucketName, expectedBucketOwner, region, timeoutTimestamp, logLevel, providerSpecifics, }) => {
29
+ const makeOverallRenderProgress = ({ renderId, bucketName, expectedBucketOwner, region, timeoutTimestamp, logLevel, providerSpecifics, forcePathStyle, }) => {
30
30
  let framesRendered = [];
31
31
  let framesEncoded = [];
32
32
  let lambdasInvoked = [];
@@ -58,6 +58,7 @@ const makeOverallRenderProgress = ({ renderId, bucketName, expectedBucketOwner,
58
58
  key: (0, client_1.overallProgressKey)(renderId),
59
59
  privacy: 'private',
60
60
  region,
61
+ forcePathStyle,
61
62
  })
62
63
  .then(() => {
63
64
  // By default, upload is way too fast (~20 requests per second)
@@ -1,3 +1,3 @@
1
1
  import type { LogLevel } from '@remotion/renderer';
2
2
  import type { ServerlessRoutines } from '@remotion/serverless/client';
3
- export declare const printLoggingGrepHelper: (type: ServerlessRoutines, data: Record<string, string | boolean>, logLevel: LogLevel) => void;
3
+ export declare const printCloudwatchHelper: (type: ServerlessRoutines, data: Record<string, string | boolean>, logLevel: LogLevel) => void;
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.printLoggingGrepHelper = void 0;
3
+ exports.printCloudwatchHelper = void 0;
4
4
  const renderer_1 = require("@remotion/renderer");
5
- const printLoggingGrepHelper = (type, data, logLevel) => {
5
+ const printCloudwatchHelper = (type, data, logLevel) => {
6
6
  const d = Object.keys(data).reduce((a, b) => {
7
7
  return [...a, `${b}=${data[b]}`];
8
8
  }, []);
9
9
  const msg = [`method=${type}`, ...d].join(',');
10
10
  renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, msg);
11
11
  };
12
- exports.printLoggingGrepHelper = printLoggingGrepHelper;
12
+ exports.printCloudwatchHelper = printCloudwatchHelper;
@@ -7,7 +7,7 @@ export type LambdaReadFileProgress = (progress: {
7
7
  downloaded: number;
8
8
  percent: number;
9
9
  }) => unknown;
10
- export declare const lambdaDownloadFileWithProgress: ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, customCredentials, logLevel, }: {
10
+ export declare const lambdaDownloadFileWithProgress: ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, customCredentials, logLevel, forcePathStyle, }: {
11
11
  bucketName: string;
12
12
  key: string;
13
13
  region: AwsRegion;
@@ -16,6 +16,7 @@ export declare const lambdaDownloadFileWithProgress: ({ bucketName, key, region,
16
16
  onProgress: LambdaReadFileProgress;
17
17
  customCredentials: CustomCredentials<AwsProvider> | null;
18
18
  logLevel: LogLevel;
19
+ forcePathStyle: boolean;
19
20
  }) => Promise<{
20
21
  sizeInBytes: number;
21
22
  to: string;
@@ -5,8 +5,8 @@ const client_s3_1 = require("@aws-sdk/client-s3");
5
5
  const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
6
6
  const renderer_1 = require("@remotion/renderer");
7
7
  const get_s3_client_1 = require("../../shared/get-s3-client");
8
- const lambdaDownloadFileWithProgress = async ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, customCredentials, logLevel, }) => {
9
- const client = (0, get_s3_client_1.getS3Client)(region, customCredentials);
8
+ const lambdaDownloadFileWithProgress = async ({ bucketName, key, region, expectedBucketOwner, outputPath, onProgress, customCredentials, logLevel, forcePathStyle, }) => {
9
+ const client = (0, get_s3_client_1.getS3Client)({ region, customCredentials, forcePathStyle });
10
10
  const command = new client_s3_1.GetObjectCommand({
11
11
  Bucket: bucketName,
12
12
  ExpectedBucketOwner: customCredentials ? undefined : expectedBucketOwner,
@@ -1,5 +1,4 @@
1
- import type { ProviderSpecifics } from '@remotion/serverless';
2
- import type { FileNameAndSize } from '@remotion/serverless/client';
1
+ import type { FileNameAndSize } from './get-files-in-folder';
3
2
  export type LambdaErrorInfo = {
4
3
  type: 'renderer' | 'browser' | 'stitcher' | 'webhook' | 'artifact';
5
4
  message: string;
@@ -16,7 +15,7 @@ export type LambdaErrorInfo = {
16
15
  total: number;
17
16
  } | null;
18
17
  };
19
- export declare const getTmpDirStateIfENoSp: <Region extends string>(err: string, providerSpecifics: ProviderSpecifics<Region>) => LambdaErrorInfo['tmpDir'];
18
+ export declare const getTmpDirStateIfENoSp: (err: string) => LambdaErrorInfo['tmpDir'];
20
19
  export type EnhancedErrorInfo = LambdaErrorInfo & {
21
20
  /**
22
21
  * @deprecated Will always be an empty string.
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTmpDirStateIfENoSp = void 0;
4
+ const get_files_in_folder_1 = require("./get-files-in-folder");
4
5
  const is_enosp_err_1 = require("./is-enosp-err");
5
- const getTmpDirStateIfENoSp = (err, providerSpecifics) => {
6
+ const getTmpDirStateIfENoSp = (err) => {
6
7
  if (!(0, is_enosp_err_1.errorIsOutOfSpaceError)(err)) {
7
8
  return null;
8
9
  }
9
- const files = providerSpecifics.getFolderFiles('/tmp');
10
+ const files = (0, get_files_in_folder_1.getFolderFiles)('/tmp');
10
11
  return {
11
12
  files: files
12
13
  .slice(0)
@@ -40,6 +40,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
40
40
  serialized: params.inputProps,
41
41
  propsType: 'input-props',
42
42
  providerSpecifics,
43
+ forcePathStyle: params.forcePathStyle,
43
44
  });
44
45
  const logOptions = {
45
46
  indent: false,
@@ -128,12 +129,14 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
128
129
  userSpecifiedBucketName: params.bucketName,
129
130
  needsToUpload,
130
131
  providerSpecifics,
132
+ forcePathStyle: params.forcePathStyle,
131
133
  });
132
134
  registerCleanupTask(() => {
133
135
  return (0, cleanup_props_1.cleanupProps)({
134
136
  serializedResolvedProps,
135
137
  inputProps: params.inputProps,
136
138
  providerSpecifics,
139
+ forcePathStyle: params.forcePathStyle,
137
140
  });
138
141
  });
139
142
  const fps = comp.fps / params.everyNthFrame;
@@ -188,6 +191,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
188
191
  compositionStart: realFrameRange[0],
189
192
  framesPerLambda,
190
193
  progressEveryNthFrame,
194
+ forcePathStyle: params.forcePathStyle,
191
195
  };
192
196
  return payload;
193
197
  });
@@ -237,6 +241,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
237
241
  region: providerSpecifics.getCurrentRegionInFunction(),
238
242
  currentRegion: providerSpecifics.getCurrentRegionInFunction(),
239
243
  providerSpecifics,
244
+ forcePathStyle: params.forcePathStyle,
240
245
  });
241
246
  if (output) {
242
247
  throw new TypeError(`Output file "${key}" in bucket "${renderBucketName}" in region "${providerSpecifics.getCurrentRegionInFunction()}" already exists. Delete it before re-rendering, or set the 'overwrite' option in renderMediaOnLambda() to overwrite it."`);
@@ -272,6 +277,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
272
277
  expectedBucketOwner: options.expectedBucketOwner,
273
278
  downloadBehavior: params.downloadBehavior,
274
279
  customCredentials,
280
+ forcePathStyle: params.forcePathStyle,
275
281
  })
276
282
  .then(() => {
277
283
  renderer_1.RenderInternals.Log.info({ indent: false, logLevel: params.logLevel }, `Wrote artifact to S3 in ${Date.now() - start}ms`);
@@ -342,6 +348,7 @@ const innerLaunchHandler = async ({ functionName, params, options, overallProgre
342
348
  overallProgress,
343
349
  startTime,
344
350
  providerSpecifics,
351
+ forcePathStyle: params.forcePathStyle,
345
352
  });
346
353
  return postRenderData;
347
354
  };
@@ -445,6 +452,7 @@ const launchHandler = async (params, options, providerSpecifics) => {
445
452
  timeoutTimestamp: options.getRemainingTimeInMillis() + Date.now(),
446
453
  logLevel: params.logLevel,
447
454
  providerSpecifics,
455
+ forcePathStyle: params.forcePathStyle,
448
456
  });
449
457
  try {
450
458
  const postRenderData = await innerLaunchHandler({
@@ -25,6 +25,7 @@ const progressHandler = async (lambdaParams, options) => {
25
25
  timeoutInMilliseconds: options.timeoutInMilliseconds,
26
26
  customCredentials: (_a = lambdaParams.s3OutputProvider) !== null && _a !== void 0 ? _a : null,
27
27
  providerSpecifics: options.providerSpecifics,
28
+ forcePathStyle: lambdaParams.forcePathStyle,
28
29
  });
29
30
  return progress;
30
31
  }
File without changes
@@ -0,0 +1 @@
1
+ "use strict";
@@ -31,6 +31,7 @@ const renderHandler = async ({ params, options, logs, onStream, providerSpecific
31
31
  serialized: params.inputProps,
32
32
  propsType: 'input-props',
33
33
  providerSpecifics,
34
+ forcePathStyle: params.forcePathStyle,
34
35
  });
35
36
  const resolvedPropsPromise = (0, client_1.decompressInputProps)({
36
37
  bucketName: params.bucketName,
@@ -39,6 +40,7 @@ const renderHandler = async ({ params, options, logs, onStream, providerSpecific
39
40
  serialized: params.resolvedProps,
40
41
  propsType: 'resolved-props',
41
42
  providerSpecifics,
43
+ forcePathStyle: params.forcePathStyle,
42
44
  });
43
45
  const browserInstance = await (0, serverless_1.getBrowserInstance)({
44
46
  logLevel: params.logLevel,
@@ -24,6 +24,7 @@ const startHandler = async (params, options, providerSpecifics) => {
24
24
  enableFolderExpiry: null,
25
25
  customCredentials: null,
26
26
  providerSpecifics,
27
+ forcePathStyle: params.forcePathStyle,
27
28
  })).bucketName;
28
29
  const realServeUrl = providerSpecifics.convertToServeUrl({
29
30
  urlOrId: params.serveUrl,
@@ -40,6 +41,7 @@ const startHandler = async (params, options, providerSpecifics) => {
40
41
  key: (0, client_1.overallProgressKey)(options.renderId),
41
42
  privacy: 'private',
42
43
  customCredentials: null,
44
+ forcePathStyle: params.forcePathStyle,
43
45
  });
44
46
  const payload = {
45
47
  type: client_1.ServerlessRoutines.launch,
@@ -84,6 +86,7 @@ const startHandler = async (params, options, providerSpecifics) => {
84
86
  deleteAfter: params.deleteAfter,
85
87
  colorSpace: params.colorSpace,
86
88
  preferLossless: params.preferLossless,
89
+ forcePathStyle: params.forcePathStyle,
87
90
  };
88
91
  const stringifiedPayload = JSON.stringify(payload);
89
92
  if (stringifiedPayload.length > 256 * 1024) {
@@ -52,6 +52,7 @@ const innerStillHandler = async ({ params: lambdaParams, expectedBucketOwner, re
52
52
  enableFolderExpiry: null,
53
53
  customCredentials: null,
54
54
  providerSpecifics,
55
+ forcePathStyle: lambdaParams.forcePathStyle,
55
56
  }).then((b) => b.bucketName);
56
57
  const outputDir = renderer_1.RenderInternals.tmpDir('remotion-render-');
57
58
  const outputPath = node_path_1.default.join(outputDir, 'output');
@@ -64,6 +65,7 @@ const innerStillHandler = async ({ params: lambdaParams, expectedBucketOwner, re
64
65
  serialized: lambdaParams.inputProps,
65
66
  propsType: 'input-props',
66
67
  providerSpecifics,
68
+ forcePathStyle: lambdaParams.forcePathStyle,
67
69
  });
68
70
  const serveUrl = providerSpecifics.convertToServeUrl({
69
71
  urlOrId: lambdaParams.serveUrl,
@@ -138,6 +140,7 @@ const innerStillHandler = async ({ params: lambdaParams, expectedBucketOwner, re
138
140
  expectedBucketOwner,
139
141
  downloadBehavior: null,
140
142
  customCredentials: null,
143
+ forcePathStyle: lambdaParams.forcePathStyle,
141
144
  });
142
145
  const onBrowserDownload = () => {
143
146
  throw new Error('Should not download a browser in Lambda');
@@ -167,6 +170,7 @@ const innerStillHandler = async ({ params: lambdaParams, expectedBucketOwner, re
167
170
  expectedBucketOwner,
168
171
  downloadBehavior: lambdaParams.downloadBehavior,
169
172
  customCredentials,
173
+ forcePathStyle: lambdaParams.forcePathStyle,
170
174
  })
171
175
  .then(() => {
172
176
  renderer_1.RenderInternals.Log.info({ indent: false, logLevel: lambdaParams.logLevel }, `Wrote artifact to S3 in ${Date.now() - startTime}ms`);
@@ -221,6 +225,7 @@ const innerStillHandler = async ({ params: lambdaParams, expectedBucketOwner, re
221
225
  region: providerSpecifics.getCurrentRegionInFunction(),
222
226
  downloadBehavior: lambdaParams.downloadBehavior,
223
227
  customCredentials,
228
+ forcePathStyle: lambdaParams.forcePathStyle,
224
229
  });
225
230
  await Promise.all([
226
231
  node_fs_1.default.promises.rm(outputPath, { recursive: true }),
@@ -228,6 +233,7 @@ const innerStillHandler = async ({ params: lambdaParams, expectedBucketOwner, re
228
233
  region: providerSpecifics.getCurrentRegionInFunction(),
229
234
  serialized: lambdaParams.inputProps,
230
235
  providerSpecifics,
236
+ forcePathStyle: lambdaParams.forcePathStyle,
231
237
  }),
232
238
  server.closeServer(true),
233
239
  ]);
package/dist/index.d.ts CHANGED
@@ -49,11 +49,11 @@ declare const renderStillOnLambda: (input: RenderStillOnLambdaInput) => Promise<
49
49
  /**
50
50
  * @deprecated Import this from `@remotion/lambda/client` instead
51
51
  */
52
- declare const presignUrl: <CheckIfObjectExists extends boolean = false>({ region, bucketName, objectKey, checkIfObjectExists, expiresInSeconds, }: import("./api/presign-url").PresignUrlInput<CheckIfObjectExists>) => Promise<CheckIfObjectExists extends true ? string | null : string>;
52
+ declare const presignUrl: <CheckIfObjectExists extends boolean = false>({ region, bucketName, objectKey, checkIfObjectExists, expiresInSeconds, forcePathStyle, }: import("./api/presign-url").PresignUrlInput<CheckIfObjectExists>) => Promise<CheckIfObjectExists extends true ? string | null : string>;
53
53
  /**
54
54
  * @deprecated Import this from `@remotion/lambda/client` instead
55
55
  */
56
- declare const getSites: ({ region, forceBucketName, }: GetSitesInput) => Promise<GetSitesOutput>;
56
+ declare const getSites: ({ region, forceBucketName, forcePathStyle, }: GetSitesInput) => Promise<GetSitesOutput>;
57
57
  export { LambdaInternals, deleteFunction, deleteRender, deleteSite, deployFunction, deploySite, downloadMedia, estimatePrice, getAwsClient, getCompositionsOnLambda, getFunctionInfo, getFunctions, getOrCreateBucket, getRegions, getRenderProgress, getRolePolicy, getSites, getUserPolicy, presignUrl, renderMediaOnLambda, renderStillOnLambda, renderVideoOnLambda, simulatePermissions, validateWebhookSignature, };
58
58
  export type { AwsRegion, CustomCredentials, DeleteFunctionInput, DeleteRenderInput, DeleteSiteInput, DeleteSiteOutput, DeployFunctionInput, DeployFunctionOutput, DeploySiteInput, DeploySiteOutput, DownloadMediaInput, DownloadMediaOutput, EnhancedErrorInfo, EstimatePriceInput, FunctionInfo, GetAwsClientInput, GetAwsClientOutput, GetCompositionsOnLambdaInput, GetCompositionsOnLambdaOutput, GetFunctionInfoInput, GetFunctionsInput, GetOrCreateBucketInput, GetOrCreateBucketOutput, GetRenderProgressInput, GetSitesInput, GetSitesOutput, LambdaErrorInfo, RenderMediaOnLambdaInput, RenderMediaOnLambdaOutput, RenderProgress, RenderStillOnLambdaInput, RenderStillOnLambdaOutput, SimulatePermissionsInput, SimulatePermissionsOutput, WebhookPayload, };
59
59
  export { _InternalAwsProvider, _InternalOverallRenderProgress };
@@ -1,8 +1,8 @@
1
1
  export declare const LambdaInternals: {
2
- executeCommand: (args: string[], remotionRoot: string, logLevel: "verbose" | "info" | "warn" | "error", implementation: import("@remotion/serverless").ProviderSpecifics<import("./functions/aws-implementation").AwsProvider> | null) => Promise<void>;
3
- makeLambdaRenderMediaPayload: ({ rendererFunctionName, frameRange, framesPerLambda, forceBucketName: bucketName, codec, composition, serveUrl, imageFormat, inputProps, region, crf, envVariables, pixelFormat, proResProfile, x264Preset, maxRetries, privacy, logLevel, outName, timeoutInMilliseconds, chromiumOptions, scale, everyNthFrame, numberOfGifLoops, audioBitrate, concurrencyPerLambda, audioCodec, forceHeight, forceWidth, webhook, videoBitrate, encodingMaxRate, encodingBufferSize, downloadBehavior, muted, overwrite, jpegQuality, offthreadVideoCacheSizeInBytes, deleteAfter, colorSpace, preferLossless, }: import("./api/make-lambda-payload").InnerRenderMediaOnLambdaInput) => Promise<import("@remotion/serverless/client").ServerlessStartPayload<import("./functions/aws-implementation").AwsProvider>>;
4
- getRenderProgressPayload: ({ bucketName, renderId, s3OutputProvider, logLevel, }: import("./client").GetRenderProgressInput) => import("@remotion/serverless/client").ServerlessStatusPayload<import("./functions/aws-implementation").AwsProvider>;
5
- makeLambdaRenderStillPayload: ({ serveUrl, inputProps, imageFormat, envVariables, quality, jpegQuality, region, maxRetries, composition, privacy, frame, logLevel, outName, timeoutInMilliseconds, chromiumOptions, scale, downloadBehavior, forceHeight, forceWidth, forceBucketName, offthreadVideoCacheSizeInBytes, deleteAfter, }: import("./api/render-still-on-lambda").RenderStillOnLambdaNonNullInput) => Promise<{
2
+ executeCommand: (args: string[], remotionRoot: string, logLevel: "error" | "verbose" | "info" | "warn", implementation: import("@remotion/serverless").ProviderSpecifics<import("./functions/aws-implementation").AwsProvider> | null) => Promise<void>;
3
+ makeLambdaRenderMediaPayload: ({ rendererFunctionName, frameRange, framesPerLambda, forceBucketName: bucketName, codec, composition, serveUrl, imageFormat, inputProps, region, crf, envVariables, pixelFormat, proResProfile, x264Preset, maxRetries, privacy, logLevel, outName, timeoutInMilliseconds, chromiumOptions, scale, everyNthFrame, numberOfGifLoops, audioBitrate, concurrencyPerLambda, audioCodec, forceHeight, forceWidth, webhook, videoBitrate, encodingMaxRate, encodingBufferSize, downloadBehavior, muted, overwrite, jpegQuality, offthreadVideoCacheSizeInBytes, deleteAfter, colorSpace, preferLossless, forcePathStyle, }: import("./api/make-lambda-payload").InnerRenderMediaOnLambdaInput) => Promise<import("@remotion/serverless/client").ServerlessStartPayload<import("./functions/aws-implementation").AwsProvider>>;
4
+ getRenderProgressPayload: ({ bucketName, renderId, s3OutputProvider, logLevel, forcePathStyle, }: import("./client").GetRenderProgressInput) => import("@remotion/serverless/client").ServerlessStatusPayload<import("./functions/aws-implementation").AwsProvider>;
5
+ makeLambdaRenderStillPayload: ({ serveUrl, inputProps, imageFormat, envVariables, quality, jpegQuality, region, maxRetries, composition, privacy, frame, logLevel, outName, timeoutInMilliseconds, chromiumOptions, scale, downloadBehavior, forceHeight, forceWidth, forceBucketName, offthreadVideoCacheSizeInBytes, deleteAfter, forcePathStyle, }: import("./api/render-still-on-lambda").RenderStillOnLambdaNonNullInput) => Promise<{
6
6
  type: import("@remotion/serverless/client").ServerlessRoutines.still;
7
7
  serveUrl: string;
8
8
  composition: string;
@@ -14,7 +14,7 @@ export declare const LambdaInternals: {
14
14
  maxRetries: number;
15
15
  frame: number;
16
16
  privacy: import("@remotion/serverless/client").Privacy;
17
- logLevel: "verbose" | "info" | "warn" | "error";
17
+ logLevel: "error" | "verbose" | "info" | "warn";
18
18
  outName: import("@remotion/serverless/client").OutNameInput<import("./functions/aws-implementation").AwsProvider> | null;
19
19
  timeoutInMilliseconds: number;
20
20
  chromiumOptions: import("@remotion/renderer").ChromiumOptions;
@@ -27,11 +27,12 @@ export declare const LambdaInternals: {
27
27
  offthreadVideoCacheSizeInBytes: number | null;
28
28
  deleteAfter: "1-day" | "3-days" | "7-days" | "30-days" | null;
29
29
  streamed: boolean;
30
+ forcePathStyle: boolean;
30
31
  }>;
31
32
  internalDeploySite: (args_0: {
32
33
  entryPoint: string;
33
34
  bucketName: string;
34
- region: "eu-central-1" | "eu-west-1" | "eu-west-2" | "eu-west-3" | "eu-south-1" | "eu-north-1" | "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "af-south-1" | "ap-south-1" | "ap-east-1" | "ap-southeast-1" | "ap-southeast-2" | "ap-northeast-1" | "ap-northeast-2" | "ap-northeast-3" | "ca-central-1" | "me-south-1" | "sa-east-1";
35
+ region: "us-east-1" | "eu-central-1" | "eu-west-1" | "eu-west-2" | "eu-west-3" | "eu-south-1" | "eu-north-1" | "us-east-2" | "us-west-1" | "us-west-2" | "af-south-1" | "ap-south-1" | "ap-east-1" | "ap-southeast-1" | "ap-southeast-2" | "ap-northeast-1" | "ap-northeast-2" | "ap-northeast-3" | "ca-central-1" | "me-south-1" | "sa-east-1";
35
36
  } & {
36
37
  siteName: string;
37
38
  options: {
@@ -48,6 +49,7 @@ export declare const LambdaInternals: {
48
49
  privacy: "public" | "no-acl";
49
50
  gitSource: import("@remotion/bundler").GitSource | null;
50
51
  indent: boolean;
52
+ forcePathStyle: boolean;
51
53
  } & import("@remotion/renderer").ToOptions<{
52
54
  readonly logLevel: {
53
55
  cliFlag: "log";
@@ -58,11 +60,11 @@ export declare const LambdaInternals: {
58
60
  getValue: ({ commandLine }: {
59
61
  commandLine: Record<string, unknown>;
60
62
  }) => {
61
- value: "verbose" | "info" | "warn" | "error";
63
+ value: "error" | "verbose" | "info" | "warn";
62
64
  source: string;
63
65
  };
64
- setConfig: (newLogLevel: "verbose" | "info" | "warn" | "error") => void;
65
- type: "verbose" | "info" | "warn" | "error";
66
+ setConfig: (newLogLevel: "error" | "verbose" | "info" | "warn") => void;
67
+ type: "error" | "verbose" | "info" | "warn";
66
68
  };
67
69
  readonly throwIfSiteExists: {
68
70
  cliFlag: string;
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.lambdaDeleteFileImplementation = void 0;
4
4
  const client_s3_1 = require("@aws-sdk/client-s3");
5
5
  const get_s3_client_1 = require("../shared/get-s3-client");
6
- const lambdaDeleteFileImplementation = async ({ bucketName, key, region, customCredentials, }) => {
7
- await (0, get_s3_client_1.getS3Client)(region, customCredentials).send(new client_s3_1.DeleteObjectCommand({
6
+ const lambdaDeleteFileImplementation = async ({ bucketName, key, region, customCredentials, forcePathStyle, }) => {
7
+ await (0, get_s3_client_1.getS3Client)({ region, customCredentials, forcePathStyle }).send(new client_s3_1.DeleteObjectCommand({
8
8
  Bucket: bucketName,
9
9
  Key: key,
10
10
  }));
@@ -3,8 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.lambdaHeadFileImplementation = void 0;
4
4
  const client_s3_1 = require("@aws-sdk/client-s3");
5
5
  const get_s3_client_1 = require("../shared/get-s3-client");
6
- const lambdaHeadFileImplementation = async ({ bucketName, key, region, customCredentials, }) => {
7
- const head = await (0, get_s3_client_1.getS3Client)(region, customCredentials).send(new client_s3_1.HeadObjectCommand({
6
+ const lambdaHeadFileImplementation = async ({ bucketName, key, region, customCredentials, forcePathStyle, }) => {
7
+ const head = await (0, get_s3_client_1.getS3Client)({
8
+ region,
9
+ customCredentials,
10
+ forcePathStyle,
11
+ }).send(new client_s3_1.HeadObjectCommand({
8
12
  Bucket: bucketName,
9
13
  Key: key,
10
14
  }));
@@ -3,10 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.lambdaLsImplementation = void 0;
4
4
  const client_s3_1 = require("@aws-sdk/client-s3");
5
5
  const get_s3_client_1 = require("../shared/get-s3-client");
6
- const lambdaLsImplementation = async ({ bucketName, prefix, region, expectedBucketOwner, continuationToken, }) => {
6
+ const lambdaLsImplementation = async ({ bucketName, prefix, region, expectedBucketOwner, continuationToken, forcePathStyle, }) => {
7
7
  var _a, _b, _c, _d;
8
8
  try {
9
- const list = await (0, get_s3_client_1.getS3Client)(region, null).send(new client_s3_1.ListObjectsV2Command({
9
+ const list = await (0, get_s3_client_1.getS3Client)({
10
+ region,
11
+ customCredentials: null,
12
+ forcePathStyle,
13
+ }).send(new client_s3_1.ListObjectsV2Command({
10
14
  Bucket: bucketName,
11
15
  Prefix: prefix,
12
16
  ExpectedBucketOwner: expectedBucketOwner !== null && expectedBucketOwner !== void 0 ? expectedBucketOwner : undefined,
@@ -28,6 +32,7 @@ const lambdaLsImplementation = async ({ bucketName, prefix, region, expectedBuck
28
32
  expectedBucketOwner,
29
33
  region,
30
34
  continuationToken: list.NextContinuationToken,
35
+ forcePathStyle,
31
36
  })),
32
37
  ];
33
38
  }
@@ -46,7 +51,11 @@ const lambdaLsImplementation = async ({ bucketName, prefix, region, expectedBuck
46
51
  }
47
52
  // Prevent from accessing a foreign bucket, retry without ExpectedBucketOwner and see if it works. If it works then it's an owner mismatch.
48
53
  if ((_d = err.stack) === null || _d === void 0 ? void 0 : _d.includes('AccessDenied')) {
49
- await (0, get_s3_client_1.getS3Client)(region, null).send(new client_s3_1.ListObjectsV2Command({
54
+ await (0, get_s3_client_1.getS3Client)({
55
+ region,
56
+ customCredentials: null,
57
+ forcePathStyle,
58
+ }).send(new client_s3_1.ListObjectsV2Command({
50
59
  Bucket: bucketName,
51
60
  Prefix: prefix,
52
61
  }));
@@ -1,9 +1,10 @@
1
1
  /// <reference types="node" />
2
2
  import type { Readable } from 'stream';
3
3
  import type { AwsRegion } from '../regions';
4
- export declare const lambdaReadFileImplementation: ({ bucketName, key, region, expectedBucketOwner, }: {
4
+ export declare const lambdaReadFileImplementation: ({ bucketName, key, region, expectedBucketOwner, forcePathStyle, }: {
5
5
  bucketName: string;
6
6
  key: string;
7
7
  region: AwsRegion;
8
8
  expectedBucketOwner: string;
9
+ forcePathStyle: boolean;
9
10
  }) => Promise<Readable>;
@@ -3,8 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.lambdaReadFileImplementation = void 0;
4
4
  const client_s3_1 = require("@aws-sdk/client-s3");
5
5
  const get_s3_client_1 = require("../shared/get-s3-client");
6
- const lambdaReadFileImplementation = async ({ bucketName, key, region, expectedBucketOwner, }) => {
7
- const { Body } = await (0, get_s3_client_1.getS3Client)(region, null).send(new client_s3_1.GetObjectCommand({
6
+ const lambdaReadFileImplementation = async ({ bucketName, key, region, expectedBucketOwner, forcePathStyle, }) => {
7
+ const { Body } = await (0, get_s3_client_1.getS3Client)({
8
+ region,
9
+ customCredentials: null,
10
+ forcePathStyle,
11
+ }).send(new client_s3_1.GetObjectCommand({
8
12
  Bucket: bucketName,
9
13
  Key: key,
10
14
  ExpectedBucketOwner: expectedBucketOwner,
@@ -8,8 +8,12 @@ const client_s3_1 = require("@aws-sdk/client-s3");
8
8
  const mime_types_1 = __importDefault(require("mime-types"));
9
9
  const content_disposition_header_1 = require("../shared/content-disposition-header");
10
10
  const get_s3_client_1 = require("../shared/get-s3-client");
11
- const tryLambdaWriteFile = async ({ bucketName, key, body, region, privacy, expectedBucketOwner, downloadBehavior, customCredentials, }) => {
12
- await (0, get_s3_client_1.getS3Client)(region, customCredentials).send(new client_s3_1.PutObjectCommand({
11
+ const tryLambdaWriteFile = async ({ bucketName, key, body, region, privacy, expectedBucketOwner, downloadBehavior, customCredentials, forcePathStyle, }) => {
12
+ await (0, get_s3_client_1.getS3Client)({
13
+ region,
14
+ customCredentials: customCredentials,
15
+ forcePathStyle,
16
+ }).send(new client_s3_1.PutObjectCommand({
13
17
  Bucket: bucketName,
14
18
  Key: key,
15
19
  Body: body,