我是Boto的新手并在python中使用<DataGrid x:Name="grdResults" AutoGenerateColumns="False" ItemsSource="{Binding Results, Mode=TwoWay}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=HomeTeam}" Header="Home Team"/>
<DataGridTextColumn Binding="{Binding Path=VisitorTeam}" Header="Visitor Team"/>
</DataGrid.Columns>
</DataGrid>
。
使用boto2.29.1
方法
使用set_metadata
方法列出s3存储桶中的所有键,然后迭代键。但它不会返回API reference
但使用bucket.list()
获取元数据会返回元数据
API参考说通过对密钥执行HEAD请求来获取元数据。我怎么能这样做?
答案 0 :(得分:0)
Boto没有直接请求(至少不在v2
中)。
获取所有元数据的唯一方法是使用bucket.get_key()
方法。
如果您只需要某些键的元数据,那么您可以执行以下操作:
for key in bucket.list():
if want_metadata(key.name):
key_with_md = bucket.get_key(key.name)
metadata = key_with_md.get_metadata('smth')
答案 1 :(得分:0)
在boto3中,您可以使用S3.Client.head_object()
方法仅加载单个键的元数据。
您还可以通过S3.Object
上的load()
方法来实现相同的目的:
s3 = boto3.resource('s3')
object = s3.Object('bucket_name','key')
object.load() # fetches metadata for the object, but not data.
# calls client's head_object behind the scene
object.reload() # synonym for load().
# apparently, we can never have enough duplicated methods.
您还可以通过使用S3.Client.list_objects()列出存储桶中的键来访问相关数据的子集。在对list_objects
的响应中,您将获得诸如存储类,大小,所有者和Etag之类的信息,但是如果没有{,您将不会获得自定义元数据(即x-amz-meta-*
键) {1}}-键。