节点AWS S3获取对象元数据吗?

简单的J

我正在尝试使用预先签名的URL在S3中存储用户的上传文件。这可以正常工作,但我使用UUID作为文件名以避免冲突。我需要能够保存文件的原始文件名,因此我将其作为元数据传递到签名的上传URL中:

const url = await s3.getSignedUrlPromise('putObject', {
  Bucket: UPLOAD_BUCKET,
  Key: key,
  Expires: AWS_UPLOAD_EXPIRATION / 1000,
  ContentType: contentType,
  Metadata: {
    filename: originalFilename
  },
});

这似乎也可以正常工作(AWS控制台中显示了元数据)。如何访问此元数据?当客户端需要显示以下图像之一时,它们会从服务器请求一个预先签名的下载URL,该URL生成如下:

const url = await s3.getSignedUrlPromise('getObject', {
  Bucket: UPLOAD_BUCKET,
  Key: key,
  Expires: AWS_DOWNLOAD_EXPIRATION / 1000,
});

该URL似乎没有包含元数据,并且URL的返回值getSignedUrlPromise是一个字符串,因此,除了URL本身之外,似乎没有其他空间。我假设会有一个S3方法仅用于获取元数据,但据我所知它不存在(或名称不直观)。考虑到getObjectTagginggetObjectLegalHold方法的存在,这尤其令人困惑如何通过预签名URL访问元数据?如果不可能,如何使用AWS开发工具包获取元数据?如果那不可能,我一定会误解元数据的观点。

亚历山大·库哈连科(Alexander Kukharenko)

您不能使用URL获取元数据,但是可以使用s3.headObject方法:

const config = new AWS.Config({
      accessKeyId: 'your acessKey',
      secretAccessKey: 'your secret',
      region: 'your region',
    });
const s3 = new AWS.S3(config);

const params = {
  Bucket: 'your bucket',
  Key: 'your assetKey'
}
const metaData = await s3.headObject(params).promise();

文献资料

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用AWS S3 Java客户端获取目录和对象元数据

递归更新AWS S3中的对象元数据

基于对象元数据值的AWS S3策略

无法从S3获取对象元数据。在AWS Rekognition中检查对象密钥,区域和/或访问权限

无法使用HTTP标头在AWS S3中设置对象元数据

AWS compareFaces()识别Javascript SDK错误:无法从S3获取对象元数据。检查对象密钥,区域和/或访问权限

如何在AWS CLI中使用AWS区域获取S3终端节点?

使用 aws lambda 节点 js 获取存储在 s3 存储桶中的视频的视频元数据

AWS 数据管道:将数据转储到 3 个 s3 节点

节点:AWS s3 - 如何查看特定对象是否存在(使用 IfModifiedSince)?

从终端节点获取JSON文件并将其保存到AWS S3

如何使用aws_s3_bucket_object数据源获取s3对象的列表?

如何在节点红色的 AWS s3 输出节点中创建端连接?

AWS S3获取特定密钥的对象标签

AWS S3:如何获取对象版本的LastModified?

如何测试AWS S3获取对象方法?

从AWS S3获取对象作为流

AWS S3签名对象无法获取

AWS CLI S3获取对象标签

通过 Spark 查询 Amazon S3 对象元数据

为什么使用axios在AWS S3上获取公共对象会返回空数据?

AWS Dynamodb无法通过节点js同步获取数据

SearchFacesByImage 中的 Rekognition InvalidS3ObjectException 错误(400 Bad Request.. 无法从 S3 获取对象元数据)

带有仅用于 S3/EMRFS 处理和 1 个核心节点的任务节点的 AWS EMR

适用于 S3 的 AWS VPC 终端节点 - 错误:匹配多个 VPC 终端节点服务

Python 3 Boto 3,AWS S3:获取对象URL

使用节点fs从AWS S3存储桶读取文件

使用VPC终端节点连接到AWS S3的示例Java代码

如何使用 AWS SDK V2 为 Amazon S3 配置终端节点?