AWS Javascript SDK:上传带有元数据的对象

Mit*_*tch 6 aws-sdk-js

Tye AWS.S3.ManagedUpload 对象允许您上传指定“标签”的对象,但我没有看到任何用于在上传的对象上指定元数据的文档。这可能吗?如果是这样,如何?

Ale*_*nov 13

请尝试以下操作:

const params = {
  Metadata: {
    'my-key': 'some-value',
  },
}
s3.upload(params, function(err, data) {
  console.log(err, data);
});
Run Code Online (Sandbox Code Playgroud)

请注意,SDK 会添加前缀x-amz-meta-

  • 那有效,谢谢。但是,当我使用所示的 x-amz-meta 前缀并查看 AWS 控制台中的元数据时,该前缀在密钥中翻了一番。使用上面的示例,密钥显示为 x-amz-meta-x-amz-meta-my-key。我可以在浏览器网络调试器中看到它在请求标头中也是这样。也许 SDK 为我添加了该前缀,所以我不需要在元数据哈希中?在哈希中没有该前缀的测试,它仍然以该前缀显示在 AWS 控制台中 - 一次,而不是两次。 (5认同)
  • 无需手动指定“x-amz-meta-”前缀,因为 SDK 会自动添加它。请记住,键必须是小写字母(因为 AWS 无论如何都会以小写形式存储它们 https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#object-metadata),理想情况下,这些应该是 ascii 字符。如果您有非 ascii 字符,您可能会丢失元数据(但在这种情况下请注意“x-amz-missing-meta”标头)。 (3认同)
  • x-amz-meta- 不需要出现在您的 params 元数据定义中。仅向定义添加 'my-key': 'some-value' 将导致 s3 中的对象上出现 x-amz-meta-my-key 的元数据键。 (2认同)
  • 虽然此代码允许我在 S3 中设置用户定义的元标头“Content-Type”,但它不会更改系统定义的元标头。Javascript AWS 版本 3 中是否有函数调用可以让我更改系统定义的“Content-Type”元标头并设置系统定义的“Content-Disposition”元标头? (2认同)