首页 > 解决方案 > AWS SDK client-s3:如何从 PutObjectCommandOutput 获取 VersionId?

问题描述

我目前有一段客户端 Typescript 代码,如下所示:

...
  const putParams: PutObjectCommandInput = {
    Bucket: bucket,
    Key: key,
    Expires: new Date(Date.now() + 30 * 60),
    ContentType: contentType,
    Body: body,
  };
  const putCommand: PutObjectCommand = new PutObjectCommand(putParams);
  const result: PutObjectCommandOutput = await s3.send(putCommand);
  console.log(result.VersionId);

我的代码中的VersionId字段正在返回undefined,即使在我的浏览器的网络面板中我可以清楚地看到从 S3 返回的正确标头,即x-amz-version-id: xx_Xx_XXxxxXXXxXXxXXxXxXXXXX.xXx. 我在这里做错了什么?

编辑: 原来问题出在 S3 Bucket 上的 CORS 配置上,添加以下几行为我解决了这个问题:

...
        "ExposeHeaders": [
            "ETag",
            "x-amz-version-id",
            "VersionId"
        ]
...

标签: typescriptamazon-web-servicesamazon-s3aws-sdkaws-sdk-js

解决方案


推荐阅读