gpt4 book ai didi

amazon-web-services - 获取所有给定前缀的s3存储桶

转载 作者:行者123 更新时间:2023-12-04 13:22:27 25 4
gpt4 key购买 nike

当前,我们有多个带有应用程序前缀和区域后缀的存储桶
例如铲斗名称

  • myapp-us-east-1
  • myapp-us-west-1

  • 有没有一种方法可以找到所有具有特定前缀的存储桶?是否有类似的东西:
    s3 = boto3.resource('s3')
    buckets = s3.buckets.filter(Prefix="myapp-")

    最佳答案

    高级集合s3.buckets.filter(Filters=somefilter)仅适用于在describe_tags过滤器(列表)下记录的方式。在这种情况下,必须先标记存储桶(s3.BucketTagging),然后才能使用非常具体的过滤方法s3.buckets.filter(Filters=formatted_tag_filter)(http://boto3.readthedocs.org/en/latest/reference/services/ec2.html#EC2.Client)

    恕我直言,如果您计划在AWS内部管理任何资源,则必须进行标记。

    目前,您可以执行此操作

    s3 = boto3.resource('s3')
    for bucket in s3.buckets.all():
    if bucket.name.startswith("myapp-"):
    print bucket.name

    以下是示例代码,用于过滤掉KEYS(而非存储桶)
    ( http://boto3.readthedocs.org/en/latest/guide/collections.html)
    # S3 list all keys with the prefix '/photos'
    s3 = boto3.resource('s3')
    for bucket in s3.buckets.all():
    if bucket.name.startswith("myapp-") :
    for obj in bucket.objects.filter(Prefix='/photos'):
    print('{0}:{1}'.format(bucket.name, obj.key))

    并且使用上面的示例有一个警告提示:

    Warning Behind the scenes, the above example will call ListBuckets, ListObjects, and HeadObject many times. If you have a large number of S3 objects then this could incur a significant cost.

    关于amazon-web-services - 获取所有给定前缀的s3存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36042968/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com