You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PowerShell获取AWS S3对象的元数据值?

解决S3对象自定义元数据取值问题

你的问题出在元数据值的获取方式上,Metadata.Keys是用来获取所有元数据键的集合,而非直接取值。正确的做法是直接通过字典键访问对应的值,或者使用Item方法。

修正后的代码如下:

Import-Module -Name AWS.Tools.Common
Import-Module -Name AWS.Tools.S3

# 设置AWS凭证配置文件
Set-AWSCredential -StoreAs $profileName -AccessKey $accessKey -SecretKey $secretKey -SessionToken $sessionToken

# 获取S3存储桶内的文件列表
$s3Contents = Get-S3Object -BucketName $s3 -ProfileName $profileName

foreach ($file in $s3Contents) {
    $fileName = $file.Key
    # 获取文件元数据
    $fileDetail = Get-S3ObjectMetadata -BucketName $s3 -ProfileName $profileName -Key $fileName -Select Metadata
    # 正确获取自定义元数据的值
    $buildId = $fileDetail.Metadata["x-amz-meta-build-id"]
    # 或者使用Item方法:$buildId = $fileDetail.Metadata.Item("x-amz-meta-build-id")
    Write-Host "文件 $fileName 的Build ID: $buildId"
}

关键说明

  • Get-S3ObjectMetadata返回的Metadata是键值对集合类型,直接通过键名即可访问对应值,无需通过Keys集合。
  • 确保元数据键名完全匹配,AWS S3的自定义元数据键会保留大小写,若直接取值失败,可尝试验证键名的大小写一致性。

内容的提问来源于stack exchange,提问作者Flan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 10:55:21