搜索

第 4 章 使用笔记本单元列出可用 Amazon S3 存储桶中的文件

download PDF

您可以通过列出存储桶中的对象来检查您可以访问的 bucket 中可用的文件。由于 bucket 使用对象存储而非典型的文件系统,因此对象命名的工作方式与普通文件命名不同。bucket 中的对象始终由一个键来代表,它由存储桶中的完整路径以及文件本身的名称组成。

先决条件

流程

  1. 创建新的笔记本单元,并列出存储桶中的对象。例如:

    bucket_name = 'std-user-bucket1'
    s3_client.list_objects_v2(Bucket=bucket_name)

    这会以以下格式返回几个对象:

    {'Key': 'docker/registry/v2/blobs/sha256/00/0080913dd3f10aadb34asfgsgsdgasdga072049c93606b98bec84adb259b424f/data',
    'LastModified': datetime.datetime(2021, 4, 22, 1, 26, 1, tzinfo=tzlocal()),
    'ETag': '"6e02fad2deassadfsf900a4bd7344ffe"',
    'Size': 4052,
    'StorageClass': 'STANDARD'}
  2. 您可以只打印键而不是完整的响应,从而使此列表更易于阅读,例如:

    bucket_name = 'std-user-bucket1'
    for key in s3_client.list_objects_v2(Bucket=bucket_name)['Contents']:
        print(key['Key'])

    这会返回类似如下的输出:

    docker/registry/v2/blobs/sha256/00/0080913dd3f10aadb34asfgsgsdgasdga072049c93606b98bec84adb259b424f/data
  3. 您还可以过滤查询来列出特定"path"或文件名,例如:

    bucket_name = 'std-user-bucket1'
    for key in s3_client.list_objects_v2(Bucket=bucket_name,Prefix='<start_of_file_path>')['Contents']:
        print(key['Key'])

    在上例中,将 <start_of_file_path> 替换为您自己的值。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.