【发布时间】:2022-01-07 10:04:35
【问题描述】:
我正在尝试以打字稿编写的 lambda 格式获取 S3 文件夹中的文件列表。我已将以下依赖项添加到我的 package.json。
"@aws-sdk/client-s3": "^3.41.0",
"@aws-sdk/node-http-handler": "^3.40.0",
然后我像这样使用 S3 客户端:
const client = new S3Client({
maxAttempts: 3,
retryMode: 'STANDARD',
region: getAwsRegion(),
requestHandler: new NodeHttpHandler({
connectionTimeout: 3000, // Timeout requests after 3 seconds
socketTimeout: 5000, // Close socket after 5 seconds
}),
credentials: args.credentials,
});
const listObjectsCommand = new ListObjectsCommand({
Bucket: args.bucketName,
Delimiter: '/',
Prefix: pathToPartition,
});
const objects = await client.send(listObjectsCommand);
我也尝试过使用 ListObjectsV2Command,但它有同样的错误。错误是:
TypeError: input.useDualstackEndpoint 不是函数\n at Object.getEndpointFromRegion (/var/task/node_modules/
/node_modules/@aws-sdk/config-resolver/dist-cjs/endpointsConfig/utils/getEndpointFromRegion.js:12:46)\n 在 processTicksAndRejections (internal/process/task_queues.js:95:5)\n 在异步 Object.serializeAws_restXmlListObjectsCommand (/var/task/node_modules/ /node_modules/@aws-sdk/client-s3/dist/cjs/protocols/Aws_restXml.js:2386:68)\n 在异步 /var/task/node_modules/ /node_modules/@aws-sdk/middleware-serde/dist-cjs/serializerMiddleware.js:5:21 .
知道我做错了什么吗?
【问题讨论】:
标签: javascript node.js typescript amazon-s3 aws-lambda